我在格式化服务器时间时遇到问题。我想服务器是中心时间。我需要在默认区域(中欧夏令时= GMT + 2 )中格式化以下字符串2016-08-22T10:29:22
。我尝试使用Joda-Time
库,我需要得到12:29:22,但我只能在+02:00结束时获得相同的日期,代码如下:
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss");
DateTime dateTime = formatter.withZone(DateTimeZone.getDefault()).parseDateTime(time);
此代码的输出为:2016-08-22T10:29:22.000+02:00
,当我尝试dateTime.getHourOfDay();
时 - 我再次获得10。
我哪里错了?
答案 0 :(得分:0)
格林尼治标准时间+2中的10:29在GMT + 2中是10:29,在GMT中是8:29,而2016-08-22T10:29:22默认区域(中欧夏令时= GMT + 2)。
2016-08-22T10:29:22
只是缺少时区信息。因此,要么在服务器返回时区之前,要么在转换之前手动添加它(即附加Z
)。