我需要记录不同系统的时间,这些系统的默认行为会将输入时间转换为系统的时区。虽然我想要的是禁用转换。所以在系统1中,我需要构建一个与系统2时区相同的日历。例如,系统1的默认时区是PDT,系统2的默认时区是GMT,创建日历所需的时间是2011/08/23 4 PDT 中的 :00,我需要在系统 1 中创建一个日历,例如 GMT 中的 2011/08/23 4:00。
换句话说,如何创建没有时区概念的日历
最佳答案
此时我会放弃 java.util.{Date, Calendar}
并逃到舒适的 Joda Time ,您将在其中创建 LocalDateTime
. (Joda Time 是一个更高级的日期/时间 API。)
如果您真的想坚持使用日历
,您可以在任何地方使用相同的时区 - 最简单的方法是 UTC,因为它没有任何夏令时时间。
或者,不清楚您真的想要一个没有TimeZone
概念的Calendar
- 但Calendar
使用系统默认值以外的 TimeZone
- 这很容易;您只需明确设置日历的时区。当然你需要知道其他系统的时区......
如果您能详细说明您知道哪些信息以及需要用这些信息做什么,我们也许能为您提供更多帮助。
关于没有时区概念的 Java 日期和日历(不考虑时区),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7158146/