有 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 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) 个答案

  1. # 1 楼答案

    在这里更新代码,第一个变化是在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 );
    
  2. # 2 楼答案

    你可以简单地用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));
    
  3. # 3 楼答案

    将日期格式更改为

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

    MM是几个月mm是几分钟

  4. # 4 楼答案

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

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

    你把日期分析错了(所以有时会在1月份给你)