获取特定日期和时间的3个字母的时区abbr

时间:2015-10-28 04:31:14

标签: android jodatime gregorian-calendar

我试图在Android中获得3个字母的时区abbr。我使用了以下内容:

TimeZone timeZone = TimeZone.getTimeZone("America/Los_Angeles");
timeZone.getDisplayName(true, TimeZone.SHORT);

这可以正确地提供PDT。但是如果我需要在11月份显示这个日期,它就不会给我PST。所以,我尝试了以下内容:

Calendar newCalendar = Calendar.getInstance();
TimeZone timeZone = TimeZone.getTimeZone("America/Los_Angeles");
newCalendar.setTimeZone(timeZone);
newCalendar.setTime(dateInNovember);

timeZone = newCalendar.getTimeZone();
timeZone.getDisplayName(true, TimeZone.SHORT);

但我仍然得到了PDT。有什么我想念的吗?或者有其他方式吗?

1 个答案:

答案 0 :(得分:1)

如果您想要标准时间,则必须将第一个参数设置为false - 请参阅javadoc

  

daylight - 指定夏令时名称为true,或为false   指定标准时间名称

解决方案:

Date date = ...;
boolean dst = timeZone.inDaylightTime(date);
timeZone.getDisplayName(dst, TimeZone.SHORT);