gpt4 book ai didi

java - java/android 查找两个日期与时区之间的差异

转载 作者:太空宇宙 更新时间:2023-11-04 13:57:19 25 4
gpt4 key购买 nike

我试图找出两个带有时区的java日期之间的差异。时区为 GMT。服务器以 2015-04-08 11:17:53 -0400 格式发送时间。我想找出服务器发送的日期格式和当前 Android 系统时间之间的差异(以分钟为单位)。

我发现了这样的区别。c_date是服务器日期格式(2015-04-08 11:17:53 -0400)

public static long getDiffrenceBetween(String c_date,String old_date) {
System.out.println("Cuttent Time :::"+c_date);
System.out.println("Saved/Old Time :::"+old_date);

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
format.setTimeZone(TimeZone.getTimeZone("GMT"));

Date d1 = null;
Date d2 = null;
long min_In_Minutes=0;

try {
d1 = format.parse(c_date);
d2 = format.parse(old_date);

// in milliseconds
long diff = d1.getTime() - d2.getTime();
min_In_Minutes = TimeUnit.MILLISECONDS.toMinutes(diff);

System.out.println("Diff in Minutes :::"+min_In_Minutes);

long diffSeconds = diff / (1000 % 60);
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000) % 24;
long diffDays = diff / (24 * 60 * 60 * 1000);

System.out.println(diffDays + " days, ");
System.out.println(diffHours + " hours, ");
System.out.println(diffMinutes + " minutes, ");
System.out.println(diffSeconds + " seconds.");

} catch (Exception e) {
e.printStackTrace();
}
return min_In_Minutes;
}

但这在几分钟内给出了负值。这个方法有什么问题。请建议。

希望能在这里找到解决办法。提前致谢,萨拉特。

最佳答案

由于您使用的是 Android,您显然无法使用 Java 8 及其新的时间 api,因此我建议使用 Joda-time - 一个外部时间库。

间隔计算示例:

Seconds.between(startDate, endDate);

更多详细信息请参见:joda

关于java - java/android 查找两个日期与时区之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29690500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com