gpt4 book ai didi

java - 将日期转换为毫秒

转载 作者:行者123 更新时间:2023-12-01 15:16:20 25 4
gpt4 key购买 nike

我有一个数据库,其中保存了我需要运行某些进程的时间我做了一个查询,它给出了当前时间和我应该运行该进程的时间之间的差异例如,我可能会得到这个数字 23:49:44.835,这意味着我需要在大约 23 小时内运行该过程。我想在毫秒内完成这个过程,所以我这样做了

Date Date = (java.util.Date) (InMsgTstable[index][0]);
long Value3 = Date.getTime();

我得到的日期值是正确的,尽管它删除了存储在我的数据库中的毫秒值。我想得到这个小时/分钟数等......以毫秒为单位,这样我就可以将该数字作为调度程序中的毫秒延迟。然而,这给了我错误的毫秒值。有什么建议吗?

最佳答案

如果您控制数据库表,我会将列类型更改为整数类型,并简单地将时间戳(以毫秒为单位)存储为整数值。

这将允许您将值视为DateCalendar native 使用的时间戳,而无需处理数据库对日期和时间列执行的转换。

编辑

从上面的评论中,我看到您获得的值看起来像是自当天开始以来的毫秒数(根据定义是本地时间,因此请注意数据库中的时区值。)

您使用此时间戳创建的日期位于 1970 年 1 月 1 日,这不是您想要的。

您可以做的是创建一个默认为“现在”的日历对象,备份到一天的开始并获取该时间戳以添加到您从数据库获得的值,例如(未经测试):

Calendar cal = Calendar.getInstance();

cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);

long stamp = cal.getTime().getTime() + msgTableValue;

Date dat = new Date(stamp);

它应该为您提供一个 Date 对象,表示当天的 msgTableValue 毫秒。

关于java - 将日期转换为毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11549325/

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