我用来获取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
任何人都可以帮我吗?
答案 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));
显然,您应该根据您的要求自定义第二个和第三个参数。