Java-考虑时区的DateTime格式



1)所以,我有一个以秒为单位的日期和时间,时区也以秒为偏移量。

eventTime=13488880602
eventTimezoneOffset=-180

2)我把它打印成这样:

Date date = new Date(eventTime);
SimpleDateFormat sdf = new SimpleDateFormat("E, MMM dd, yyyy @ h:mmaa");
System.out.println(sdf.format(date));

生产日期:2012年9月28日星期五上午10:03

3)然而,这是为我在机器上运行它时准备的。

当我在服务器上运行它时,它会给我:2012年9月28日星期五晚上9:03

因为我的服务器和我的机器有时差。

4)因此,我试图使用eventTimezoneOffset来设置Date或SimpleDateFormat对象,以表示正确时区时间内的时间,而不管运行应用程序的服务器在哪里

5)我试图在SimpleDateFormat上设置时区,但不确定如何使用eventTimezoneOffset(以秒为单位)来完成。

6)需要澄清的是,这些事件可能发生在世界各地。自Epoch以来,每个事件都以秒为单位进行跟踪。因此,当只查看eventTime时,它将显示应用程序运行的任何时区。为了获得事件的确切时间,考虑到位置时区,提供了时区Offet。我只是不知道如何应用时区偏移。

使用SimpleDateFormat实例的setTimeZone方法设置时区:

SimpleDateFormat sdf = new SimpleDateFormat("E, MMM dd, yyyy @ h:mmaa");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));

相关内容

  • 没有找到相关文章

最新更新