Java android:TimeZone.getDefault()返回EST,而不是EDT
当我在手机上使用TimeZone.getDefault()时,我得到了错误的时区(它应该是EDT,但它显示的是EST)。当我进入手机的日期和时间设置时,它会显示它已设置为EDT。我做错了什么 这是我的代码:Java android:TimeZone.getDefault()返回EST,而不是EDT,java,android,timezone,Java,Android,Timezone,当我在手机上使用TimeZone.getDefault()时,我得到了错误的时区(它应该是EDT,但它显示的是EST)。当我进入手机的日期和时间设置时,它会显示它已设置为EDT。我做错了什么 这是我的代码: timezone = Calendar.getInstance().getTimeZone() .getDisplayName(false, TimeZone.SHORT); EDT是夏昼时区,冬季使用EST。因此,您手机的
timezone = Calendar.getInstance().getTimeZone()
.getDisplayName(false, TimeZone.SHORT);
EDT是夏昼时区,冬季使用EST。因此,您手机的设置可能只显示时区,而不考虑日光。EDT是夏令时时区,而在冬季使用EST。因此,手机的设置可能只是显示时区,而不考虑日光。如果查看
getDisplayName
,您会发现第一个参数控制是返回标准名称还是日光名称。由于您通过了false
,因此您将始终获得标准名称
您可以使用inDaylightTime
确定所讨论的日期是否在白天
例如:
Date now = new Date();
TimeZone tz = Calendar.getInstance().getTimeZone();
String name = tz.getDisplayName(tz.inDaylightTime(now), TimeZone.SHORT);
如果查看getDisplayName
,您会发现第一个参数控制是返回标准名称还是日光名称。由于您通过了false
,因此您将始终获得标准名称
您可以使用inDaylightTime
确定所讨论的日期是否在白天
例如:
Date now = new Date();
TimeZone tz = Calendar.getInstance().getTimeZone();
String name = tz.getDisplayName(tz.inDaylightTime(now), TimeZone.SHORT);
谢谢你的帮助。我还是从中得到了最大的收获。这是我的代码:timezone=Calendar.getInstance().getTimeZone().getDisplayName(false,timezone.SHORT);谢谢你的帮助。我还是从中得到了最大的收获。这是我的代码:timezone=Calendar.getInstance().getTimeZone().getDisplayName(false,timezone.SHORT);