date_time差异输出不正确

时间:2015-02-19 01:14:34

标签: java

我已经编写了这个java代码来获取system_date_time和my_date_time之间的区别,当我运行此代码时system_date_time是2015-02-19 06:01:00,所以差异应该是24小时= 86400秒,但这段代码给出-2592002作为输出。 所以请帮助解决问题。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class A {

    public static void main(String arg[]) throws ParseException {

        String dateString = "2015-02-20 06:01:00"; // end_date_time
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
        Date myDate = sdf.parse(dateString);

        System.out.println( (myDate.getTime() - System.currentTimeMillis()) / 1000 );

    }

}

4 个答案:

答案 0 :(得分:1)

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

注意MM(MM是月,mm是分钟)

您解析了日期错误(因此有时会在1月份给您)

答案 1 :(得分:0)

您只需使用java.sql.Timestamp即可实现目标。

String dateString = "2015-02-20 06:01:00"; // end_date_time
Timestamp myTimeStamp = Timestamp.valueOf(dateString);
System.out.println( ((myTimeStamp.getTime() - System.currentTimeMillis()) / 1000));

答案 2 :(得分:0)

将日期格式更改为

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

MM是几个月mm是分钟

答案 3 :(得分:0)

在此更新代码,首先更改是在SimpleDateFormat中使用MM而不是mm,在sysout中使用另一个更改

    String dateString = "2015-02-18 15:39:00"; // end_date_time
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    Date myDate = sdf.parse(dateString);
    System.out.println( (  System.currentTimeMillis()- myDate.getTime()) / 1000 );