我正在将时间从GMT转换到不同的美国时区。为此,我写了一个返回1小时前一个时间的方法。如果时间是2点钟,它将返回1点钟
a = "Hello world!"
listresp = list(map(list, a))
listff =[]
print (listresp)
for charersp in listresp:
for charfinnal in charersp:
listff.append(charfinnal)
print (listff)
['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!']
有人可以帮我解决究竟是什么问题,因为几个月前同样的方法工作正常吗?这是因为夏令时吗?
答案 0 :(得分:0)
这可以使用java.time API以更简单的方式完成。使用Instant表示UTC时间。它可以在任何区域转换为时间,并格式化为特定模式。
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
Instant now = Instant.now();
ZonedDateTime dt = now.atZone(ZoneId.of("UTC-05:00"));
System.out.println(dt.format(format)); //2017-05-24 04:51:03
ZonedDateTime pstDate = now.atZone(ZoneId.of("UTC-07:00"));
System.out.println(pstDate.format(format)); //2017-05-24 02:51:03
答案 1 :(得分:0)
经过如此多的挖掘后,我发现TimeZone不会根据时区给出正确的结果
(EST,CST,MST,PST)
所以在我的方法中,我作为timeZone传递的参数是
(EST,CST,MST,PST)
而不是EST, CST, MST, PST
我已通过US/Eastern
US/Pacific
US/Mountain
US/Central
,而且它对我来说很好用