【问题标题】:Getting Difference between two dates returns wrong result获取两个日期之间的差异会返回错误的结果
【发布时间】:2014-04-09 10:27:53
【问题描述】:

试图获得两个日期之间的差异,但它没有给我正确的结果,这是我正在尝试的代码

String str = result.toString();
Log.v("Server Date TIme", str);
String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
Log.v("Device Date TIme", currentDateTimeString)
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date date1 = dateFormat.parse(str);
Date date2 = new Date();

long diffM = date2.getTime() - date1.getTime();
String s = String.valueOf(diffM);
Log.v("Difference in Minutes: ", s);

long  diffH = diffM/60;
s = String.valueOf(diffH);
Log.v("Difference in Hours: ", s);

long diffD = diffH/24;
s = String.valueOf(diffD);
Log.v("Difference in Days: ", s);

这是日志

04-09 15:25:16.870: V/Server Date TIme(26287): 2014-04-09 15:22:52
04-09 15:25:16.875: V/Device Date TIme(26287): 9 Apr 2014 15:25:16
04-09 15:25:16.875: V/Difference in Minutes:(26287): 144882
04-09 15:25:16.875: V/Difference in Hours:(26287): 2414
04-09 15:25:16.875: V/Difference in Days:(26287): 100

【问题讨论】:

  • 看起来服务器日期时间是 YYYY-DD-MM,设备是 D-MMM YYYY,所以服务器在 9 月,设备在 4 月。
  • 将两个日期转换为相似的日期时间格式,然后尝试计算
  • 但我正在将服务器时间解析为 Date 对象...
  • 试试this

标签: android datetime


【解决方案1】:

Date.getTime() 返回自时间开始以来的毫秒数。所以你需要除以 1000 得到秒,再除以 60 得到分钟,以此类推。

【讨论】:

    猜你喜欢
    • 2020-03-22
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 2014-02-19
    • 1970-01-01
    • 2022-01-05
    相关资源
    最近更新 更多