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:03 28
因为我的服务器和我的机器上的时差。
4)因此,我尝试使用eventTimezoneOffset来设置Date或SimpleDateFormat对象,以便以正确的时区时间表示时间,而不管运行应用程序的服务器位于何处。
5)我试着在SimpleDateFormat上设置时区,但我不确定如何使用eventTimezoneOffset在我拥有的秒数内做到这一点。
6)为了澄清,这些事件可以在世界各地发生。自Epoch以来,每个事件都以秒为单位进行跟踪。因此,当只查看eventTime时,它将显示应用程序运行时所在的时区。为了获得事件的确切时间,考虑到位置时区,提供了timezoneOffet。我只是不确定如何应用timezoneOffset。
发布于 2012-09-30 07:46:10
使用SimpleDateFormat实例的setTimeZone方法设置时区:
SimpleDateFormat sdf = new SimpleDateFormat("E, MMM dd, yyyy @ h:mmaa");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));https://stackoverflow.com/questions/12657394
复制相似问题