我有一个数据库,将日期存储在OleDateTime
格式,采用 GMT 时区。我已经实现了一个类,扩展Date
在java中以经典日期格式表示。但我的课程取决于区域设置(我在 GMT+2)。因此,它将数据库中的日期转换为date - 2 hours
。如何使其正确转换日期?我希望我的课程与区域设置无关,始终使用 GMT 时区。其实,问题是:
class MyOleDateTime extends Date {
static {
Locale.setDefault(WhatGoesHere?)
}
// ... some constructors
// ... some methods
}
好吧,最好像其他答案中建议的那样使用 Calendar 对象。但是,如果您really想要设置全球时区,你可以使用TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
在应用程序代码的早期。还有user.timezone
Java 系统属性。
另外(很有趣的是),似乎唯一真正采用 GMT/UTC 时间(没有夏令时变化)的国家是利比里亚。
实际上,Date
对象本身是always独立于语言环境和时区。它是getTime()
方法将始终返回自 1970 年 1 月 1 日 00:00:00 以来经过的毫秒数(不包括闰秒)in UTC。但如果你想得到毫秒以外的东西,你必须使用Calendar
, which is取决于时区。但这是正确的方法。您不使用已弃用的方法Date
上课了,你呢?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)