没有在java中获得正确的时区

时间:2014-03-10 11:53:06

标签: java eclipse timezone

我用来获取java端当前时区的代码如下:

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles"));

System.out.println("the timezone is--->"+(TimeZone.getTimeZone("America/Los_Angeles")).getDisplayName());

显示为pacific Standard Time 但是目前在美国/洛杉矶的时区是pacific daylight time

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:3)

您正在调用无参数getDisplayName()方法,其文档包括:

  

此方法相当于:

 getDisplayName(false, LONG, Locale.getDefault(Locale.Category.DISPLAY))

这里的false是指定“不使用夏令时”的参数。因此无参数方法永远不会显示DST变体。

目前尚不清楚你应该通常根据当前标准/日光部分显示名称 - 但如果你真的想要,你可以使用:

String name = zone.getDisplayName(zone.inDaylightTime(new Date()), TimeZone.LONG,
                                  Locale.getDefault(Locale.Category.DISPLAY));

显然,您应该根据您的要求自定义第二个和第三个参数。