Java 如何从历元将年-月-日转换为正确的UTC毫秒?

Java 如何从历元将年-月-日转换为正确的UTC毫秒?,java,date,utc,Java,Date,Utc,我正在尝试使用以下代码将日期转换为毫秒: GregorianCalendar gc = new GregorianCalendar(TimeZone.getTimeZone("UTC")); gc.clear(); gc.set(1900, 1, 1); long left = gc.getTimeInMillis(); 我得到left=-2206310400000,但是当我检查时,我应该得到-2208988800000 我做错了什么?你用1表示月份,也就是二

我正在尝试使用以下代码将日期转换为毫秒:

    GregorianCalendar gc = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
    gc.clear();
    gc.set(1900, 1, 1);

    long left = gc.getTimeInMillis();
我得到
left=-2206310400000
,但是当我检查时,我应该得到-2208988800000


我做错了什么?

你用1表示月份,也就是二月

你是说

gc.set(1900, 0, 1);
发件人:

月-用于设置月日历字段的值。月份值以0为基础。e、 g.一月份为0

是的,Java日期/时间API已损坏。如果你在日期/时间上做了大量的工作,我建议你改用


选中此[post][1][1]:注意:时间戳使用POSIX时间,而不是UTC时间。这几天的差别大约是半分钟。迪特里希哦,谢谢!!!
long left = new DateTime(1900, 1, 1, 0, 0, DateTimeZone.UTC).getMillis();