import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.TimeZone;

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

public class Test {
    public static void main(String[] args) throws ParseException {
        // Test code:
        String timestamp = "0018-09-05 00:00:00.000";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
        System.out.println(simpleDateFormat.parse(timestamp).toInstant());
        System.out.println(simpleDateFormat.parse(timestamp).toInstant().toEpochMilli());
        // Workaround:
        DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS").withZoneUTC();
        DateTime date = DateTime.parse("0018-09-05 00:00:00.000", fmt);
        System.out.println(date.toInstant().getMillis());
        System.out.println(date.toInstant());
    }
}