从字符串解析为long的日期会产生错误的结果

Ris*_*vik 5 java timestamp

我得到了简单的代码,也许问题依赖于给定的格式字符串或时区.所以这是代码:

public static void main(String[] args) {
    SimpleDateFormat df = new SimpleDateFormat("HH:mm");
    try {
        Date added = df.parse("00:00");
        System.out.println(added);
        System.out.println(added.getTime());
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

结果是:Thu Jan 01 00:00:00 EET 1970-10800000 - >应该是0,因为我们给00:00小时,其他时间元素保持默认.

//编辑

是的问题是使用时区修复此用途df.setTimeZone(TimeZone.getTimeZone("UTC")); 在解析之前.

Mac*_*Mac 2

值 10800000 正好是 3 小时(以毫秒为单位),我收集的值大致是 EET 和 UTC 之间的偏移量(实际上,根据this ,只有 2 小时,但我猜额外的小时是 DST 之类的)。

因此,差异可能是由于您的时区造成的。