想要改进这篇文章? 提供这个问题的详细答案,包括引文和解释为什么你的答案是正确的。没有足够细节的答案可能会被编辑或删除。
当我创建一个新Date对象时,它被初始化为当前时间,但在本地时区。如何获取 GMT 的当前日期和时间?
Date
java.util.Date没有特定的时区,尽管它的值最常被认为与 UTC 相关。是什么让你觉得是当地时间?
java.util.Date
准确地说:a 中的值java.util.Date是自 Unix 纪元以来的毫秒数,该纪元发生在 UTC 时间 1970 年 1 月 1 日午夜。相同的纪元也可以在其他时区进行描述,但传统的描述是用 UTC 来描述的。由于自固定纪元以来的毫秒数,因此java.util.Date无论本地时区如何,在任何特定时刻,全球范围内的值都是相同的。
我怀疑问题是您通过使用本地时区的日历实例显示它,或者可能使用Date.toString()也使用本地时区的SimpleDateFormat实例,或者默认情况下也使用本地时区的实例。
Date.toString()
SimpleDateFormat
如果这不是问题,请发布一些示例代码。
不过,我还是建议您使用Joda-Time,它提供了更清晰的 API。