如何在Java或UTC中获取当前的日期和时间? [英] How can I get the current date and time in UTC or GMT in Java?

查看:173
本文介绍了如何在Java或UTC中获取当前的日期和时间?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我创建一个新的 Date 对象时,它被初始化为当前时间,但是在本地时区。如何以GMT格式获取当前日期和时间?

解决方案

java.util.Date 没有特定的时区,尽管它的值最常见于UTC。什么让你认为它在当地时间?



确切地说: java.util.Date 是从1970年1月1日午夜UTC发生的Unix纪元以来的毫秒数。同一时期也可以在其他时区进行描述,但传统的描述是以UTC为单位。由于它是一个固定的时代以来的毫秒数,所以在任何特定时刻, java.util.Date 中的值在世界各地都是一样的,无论本地时区如何。 / p>

我怀疑问题是您通过使用本地时区的日历实例显示,或者可能使用 Date.toString() 还使用本地时区,或者一个 SimpleDateFormat 实例,默认情况下也使用本地时区。



如果这不是问题,请发布一些示例代码。



但是,我建议您使用 Joda-Time ,这提供了一个更清晰的API。


When I create a new Date object, it is initialized to the current time but in the local timezone. How can I get the current date and time in GMT?

解决方案

java.util.Date has no specific time zone, although its value is most commonly thought of in relation to UTC. What makes you think it's in local time?

To be precise: the value within a java.util.Date is the number of milliseconds since the Unix epoch, which occurred at midnight January 1st 1970, UTC. The same epoch could also be described in other time zones, but the traditional description is in terms of UTC. As it's a number of milliseconds since a fixed epoch, the value within java.util.Date is the same around the world at any particular instant, regardless of local time zone.

I suspect the problem is that you're displaying it via an instance of Calendar which uses the local timezone, or possibly using Date.toString() which also uses the local timezone, or a SimpleDateFormat instance, which, by default, also uses local timezone.

If this isn't the problem, please post some sample code.

I would, however, recommend that you use Joda-Time anyway, which offers a much clearer API.

这篇关于如何在Java或UTC中获取当前的日期和时间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆