android:TimeZone.getDefault()返回EST,而不是EDT

时间:2013-06-29 23:23:14

标签: java android timezone

当我在手机上使用TimeZone.getDefault()时,我得到了错误的时区(它应该是EDT,但它表示EST)。当我进入手机的日期和时间设置时,它表示它已设置为EDT。我做错了什么?

这是我的代码:

timezone = Calendar.getInstance().getTimeZone()
                                 .getDisplayName(false, TimeZone.SHORT);

2 个答案:

答案 0 :(得分:7)

如果您查看getDisplayName的{​​{3}},您会发现第一个参数控制是返回标准名称还是日光名称。由于您通过了false,因此您将始终获得标准名称。

您可以使用inDaylightTime来确定相关日期是否在白天时间。

例如:

Date now = new Date();
TimeZone tz = Calendar.getInstance().getTimeZone();
String name = tz.getDisplayName(tz.inDaylightTime(now), TimeZone.SHORT);

答案 1 :(得分:0)

EDT是夏令时夏令时区,在冬季使用EST代替。因此,您的手机设置可能只显示时区而不考虑日光。