Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android:TimeZone.getDefault()返回EST,而不是EDT_Java_Android_Timezone - Fatal编程技术网

Java android:TimeZone.getDefault()返回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.getDefault()时,我得到了错误的时区(它应该是EDT,但它显示的是EST)。当我进入手机的日期和时间设置时,它会显示它已设置为EDT。我做错了什么

这是我的代码:

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);