1)所以,我有一个以秒为单位的日期和时间,时区偏移也以秒为单位。
eventTime = 1348880602
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)但是,这是在我的机器上运行它时使用的。
当我在我的服务器上运行它时,它给了我:Fri, Sep 28, 2012 @ 9:03PM
因为我的服务器和我的机器上的时差。
4)所以,我试图使用 eventTimezoneOffset 来设置 Date 或 SimpleDateFormat 对象以表示正确时区时间的时间,而不管运行应用程序的服务器在哪里。
5) 我尝试在 SimpleDateFormat 上设置时区,但不确定如何在我拥有的几秒钟内使用 eventTimezoneOffset 来做到这一点。
6)澄清一下,这些事件可以在世界各地发生。自 Epoch 以来,每个事件都以秒为单位进行跟踪。因此,当仅查看 eventTime 时,它将显示应用程序正在运行的任何时区。为了获得事件的确切时间,考虑到位置时区,提供了 timezoneOffet。我只是不确定如何应用 timezoneOffset。