当字符串“2017-04-21T17:46:00Z”传入第一个方法时,生成的格式化日期字符串为“06:46 2017年4月21日”。为什么十一小时的时间移动?输入字符串由JSON中的HTTP服务器应用程序提供。我认为Z后缀是指祖鲁语,即GMT。JodaTime时区为什么会改变日期时间?
private static final String DATE_TIME_FORMAT = "hh:mm dd MMM yyyy";
public static String formatTimestamp(String dateTimestamp) {
DateTime dateTime = getDateTimeFromTimestamp(dateTimestamp);
DateTimeFormatter fmt = DateTimeFormat.forPattern(DATE_TIME_FORMAT);
return fmt.print(dateTime);
}
private static DateTime getDateTimeFromTimestamp(String dateTimestamp) {
return new DateTime(dateTimestamp);
}
我怀疑它涉及时区,但它不清楚如何或在哪里。该代码在GMT时区的英国Android设备上运行。
不会这项工作'返回新的SimpleDateFormat(DATE_TIME_FORMAT“)格式(dateTimestamp);' –
什么的System.out.println(DateTimeZone.getDefault())的'输出;' – 2017-04-27 12:20:40
? @Hugo“Europe/London” –