Java 日期\时间差输出不正确

Java 日期\时间差输出不正确,java,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

我编写了这段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 );

    }

}

您可以简单地使用
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));
注意MM(MM为月,MM为分钟)


您解析的日期有误(因此它有时会在1月份提供)

将日期格式更改为

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

MM
用于数月
MM
用于数分钟

在这里更新代码,第一个更改是在SimpleDataFormat中使用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 );

您的日期格式错误您必须提及yyyy MM dd hh:MM:SS如果您认为它解决了您的问题,请给出答案。认识到正确的解决方案将有助于整个社区。这可以通过单击答案旁边的绿色复选标记来完成。见此参考。你也将获得+2声望!干杯。答案没有刷新,只有在我发布答案后才出现。这是放弃投票的一个非常站不住脚的理由。可能有两个类似的答案,并且在整个过程中经常出现在许多问题上。
    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 );