gpt4 book ai didi

Java日期在tomcat运行的不同时区生成

转载 作者:行者123 更新时间:2023-12-02 11:59:53 25 4
gpt4 key购买 nike

我在 mysql 中存储了一个没有时区的日期,例如 2001-01-10 00:00:00。例如,我有 tomcat 在时区 +10:00 运行。我需要生成一个 Date() ,它在对象中没有偏移量。

如果我这样做:

 Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
cal.setTime( new Date(/*from 2001-01-10 00:00:00*/) );
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
Date newDate = cal.getTime();

结果 Date 对象仍然具有向服务器时区报告的 zoneinfo 和 zoneoffset,而不是 UTC。

我需要生成一个具有零时间的 Date() 对象,但保留存储在 mysql 中的日期,独立于 tomcat 时区。换句话说,我想生成独立于服务器时区的零小时/分钟/秒的日期。

The date generated shows 2001-01-01T00:00:00.000+1400
the time is zero but offset is +14:00.
I want to generate 2001-01-01T00:00:00.000+0000

mysql数据时间是DATETIME

最佳答案

Date 对象不保存时区信息,将其想象为一个只有一个 long 属性的类,用于存储从 1970 年过去的毫秒数。

SimpleDateFormat 类或其他库(如 JODA)在将日期转换为字符串时负责跟踪时区。

关于Java日期在tomcat运行的不同时区生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47349172/

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