对于下面的代码我得到不同的输出爪哇getTimeZone获取()表现不同对于不同种输入
TimeZone t = TimeZone.getTimeZone("GMT-8"); // Also tried UTC-8 and GMT-8:00
//TimeZone t = TimeZone.getTimeZone("America/Los_Angeles");
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
Date d = null;
Calendar c = Calendar.getInstance(t);
c.set(Calendar.MONTH, Calendar.AUGUST);
c.set(Calendar.DAY_OF_MONTH, 22);
c.set(Calendar.YEAR, 2013);
d = c.getTime();
String s = sdf.format(d);
System.out.println(s + " " + t.inDaylightTime(d));
输出是:
08/22/2013 false
现在美洲/洛杉矶是GMT-8/UTC-8或PST。但是,当我改变参数从GMT-8 美洲/洛杉矶,
输出是:
08/22/2013 true
不能使用PST像自弃用的缩写。 CST也可以表示中央标准时间和中国标准时间。
我的输入是-8,-9 -14等,我希望在其中添加GMT/UTC,以了解是否可以在给定日期获得DST激活。
请在这方面指导我。
是不是很期待?您不能保证GMT-8下的所有地点都有DST。每个国家/州政府对DST的管理方式都有所不同。 – gerrytan 2013-02-25 05:47:55
Java TimeZone有一个可用的ID列表(getAvailableIDs()),如America/Boise America/Cambridge_Bay,America/Chihuahua,America/Dawson_Creek 美国/丹佛,美国/埃德蒙顿,美国/埃莫西约 美国/伊努维克,美国/马萨特兰,America/Ojinaga 美国/凤凰城,美国/ Shiprock,美国/耶洛奈夫是随机的,并非所有的城市都在这里覆盖(波士顿华盛顿例子)。那么我如何确保使用有限的选项获得日光信息 – nixsix6 2013-02-25 05:59:35