我正在尝试做什么:
从DateTimeZone对象,我试图以毫秒为单位获取GMT偏移量。例如:
DateTimeZone gmt= // somehow get gmt zone object
long offset = gmt.getOffsetSomehow(); // expect offset = 0
DateTimeZone ny_est = // somehow get that time zone object representing "EST" offset of NY zone
long offset = ny_est.getOffsetSomehow(); // expect offset = -18000000 = -5*60*60*1000
DateTimeZone hkt = // somehow get HK time zone object
long offset = hkt.getOffsetSomehow(); // expect offset = 28800000 = 8*60*60*1000
Joda的DateTimeZone对象有一个名为getOffset的方法,它接受一个参数。问题:
答案 0 :(得分:13)
这是因为Offset随时间而变化。一个例子是夏令时。另一个国家决定转移到另一个时区。
如果你想要当前的偏移量,现在就像这样:
int offset = DateTimeZone.forID("Europe/Berlin").getOffset(new DateTime());
System.out.println(offset);
答案 1 :(得分:0)
2)您可以通过这种方式获取TimeZone对象 - TimeZone tz = TimeZone.getTimeZone("Asia/Kolkata");
3您可以通过此方法获得偏移值 -
double timezoneval = 0.0;
Calendar cal = Calendar.getInstance();
cal.set(2013, 3, 25, 10, 0,0);
TimeZone tz = TimeZone.getDefault();
boolean t = tz.inDaylightTime(cal.getTime());
if (t)
timezoneval = ((TimeZone.getDefault().getRawOffset())
/ (60 * 60 * 1000D) + (TimeZone.getDefault()
.getDSTSavings() / (60 * 60 * 1000D)));
else
timezoneval = ((TimeZone.getDefault().getRawOffset()) / (60 * 60 * 1000D));
1)我没有得到你的问题。
此偏移值适用于日间节能和非日间节能国家。