Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从字符串到long的日期分析给出了错误的结果_Java_Timestamp - Fatal编程技术网

Java 从字符串到long的日期分析给出了错误的结果

Java 从字符串到long的日期分析给出了错误的结果,java,timestamp,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(adde

我得到了简单的代码,可能问题取决于给定的格式字符串或时区。下面是代码:

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();
    }
}
结果是:1970年1月1日星期四00:00:00 EET -10800000-->应为0,因为我们在中给出了00:00小时,而其他时间元素保持默认值

//编辑

是的,问题在于时区来解决这个问题
df.setTimeZone(TimeZone.getTimeZone(“UTC”));解析前。

您的时区似乎是EET。这个差值是1970年1月1日00:00:00.000 UTC的偏移量10800000正好是3小时(以毫秒为单位),我收集的数据大致是EET和UTC之间的偏移量(实际上,根据数据,这仅为2小时,但我猜额外的一小时取决于DST或其他原因)


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

由于您没有指定日期,只有小时,因此您实际创建了一个具有默认值的日期对象,如(SimpleDataFormat实现的)中所述:

日期表示为日期对象或自1970年1月1日00:00:00 GMT以来的毫秒数