gpt4 book ai didi

java.sql.Time getTime 没有返回好的值

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

在我的程序中,我需要从数据库读取时间值,然后将该值转换为毫秒。我这样做:

Time t = getTimeFromDatabase();
long millis = t.getTime();

问题是millis的值对应的时间值比数据库中输入的时间早1小时。

例如:假设数据库中的值为 09:30:00。所以如果我这样做:

Time t = getTimeFromDatabase();    
System.out.println(t.toString);
System.out.println(t.getTime);

输出为:

09:30:00
30600000

现在... 09:30:00 可以。这就是数据库中的情况。

但是30600000/3600000 = 8.5(3600000 是每小时毫秒)。这意味着该值(以毫秒为单位)对应于 08:30:00。

09:30:00 的正确值应为 34200000。

我的问题是如何获得正确的值,无论时区如何(我在 UTC +1,所以我猜这与我的问题有关)。

我尝试过其他时间值,但它总是相同的(提前 1 小时)。

提前致谢。

最佳答案

当您将数据库中的数据解析为 Time 对象时,您应该使用格式化程序,并设置正确的时区。

SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
timeFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = timeFormat.parse(dataFromDB); // dataFromDB is a "09:30:10" like String
System.out.println(timeFormat.format(date)); // will print time in HH:mm:ss format
System.out.println(date.getTime()); // will print milliseconds

关于java.sql.Time getTime 没有返回好的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27668094/

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