gpt4 book ai didi

java - 自 12 :00 am December 31, 1989 Java 以来的秒数

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:41:44 25 4
gpt4 key购买 nike

我必须计算从 1989 年 12 月 31 日凌晨 12:00 到现在的秒数。第二个解析器来自 Garmin Fleet Management。这是我的代码:

public int getDate(){
Date d1 = new Date(1989, 12, 31, 12, 0, 0);
Date today = new Date();
long diff = today.getTime() - d1.getTime();
return (int)(diff/1000);
}

Garmin 解析器中 getDate() 的秒数显示为 2021 年 7 月 28 日晚上 8 点 35 分,而不是现在。

这是我需要的(通过文档)日期时间的解释

It is an unsigned 32-bit integer and its value is the number of seconds since 12:00 am December 31, 1989, UTC.

我哪里做错了?

最佳答案

您应该返回 long 并将您的差异包装到 Math.abs() 以获得表示差异的正结果。

public static long getDate() {
Date d1 = new Date(1989, 12, 31, 12, 0, 0);
Date today = new Date();
long diff = Math.abs(today.getTime() - d1.getTime());
return (diff/1000);
}

Java 中没有unsigned


此外,Date 的构造函数已过时,因此使用 Calendar 是更好的方法:

public static long getDate() {
Calendar d1 = new GregorianCalendar(1989, 11, 31, 0, 0, 0);
Date today = new Date();
long diff = Math.abs(today.getTime() - d1.getTime().getTime());
return (diff/1000);
}

关于java - 自 12 :00 am December 31, 1989 Java 以来的秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36219669/

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