【发布时间】:2015-01-09 04:05:04
【问题描述】:
我正在尝试使用格式化程序 yyyy-MM-dd HH:mm z 格式化日期时间,并使用 joda api for id Australia/Yancowinna 。我的期望是,它应该为区域显示 3 个字母的短代码(例如:IST、GMT、EDT 等),而不是显示 +10:30。它如何为大多数其他 ID 显示正确的区域代码。
这是我的代码
package com.rais;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
public class DateClient {
public static void main(String[] args) {
DateTimeZone.setDefault(DateTimeZone.forID("Australia/Yancowinna"));
DateTime datetime = new DateTime("2015-01-13T14:30:00.000+10:30");
System.out.println("Original time = "+datetime);
System.out.println("Original time zone = "+datetime.getZone());
System.out.println("Original time toString(yyyy-MM-dd HH:mm z)= "+datetime.toString("yyyy-MM-dd HH:mm z"));
}
}
这是输出
Original time = 2015-01-13T14:30:00.000+10:30
Original time zone = Australia/Broken_Hill
Original time toString(yyyy-MM-dd HH:mm z)= 2015-01-13 14:30 +10:30
如果我们使用区域 id Asia/Amman,它会在 windows 中显示正确的区域代码,但在 linux 中不显示区域代码。
【问题讨论】:
标签: java datetime calendar timezone jodatime