java date rawoffset_Java SimpleTimeZone.getRawOffset方法代码示例

import java.util.SimpleTimeZone; //导入方法依赖的package包/类

public void Test4278609() {

SimpleTimeZone tz = new SimpleTimeZone(0, "MyTimeZone",

/* DST start day: August, 1, 0:00 */

Calendar.AUGUST, 1, 0, 0,

/* DST end day: January, 1, 0:00 (wall-clock)*/

Calendar.JANUARY, 1, 0, 0,

60 * 60 * 1000);

Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT"));

// setting a date using GMT zone just after the end rule of tz zone

cal.clear();

cal.set(Calendar.ERA, GregorianCalendar.AD);

cal.set(1998, Calendar.DECEMBER, 31, 23, 01, 00);

Date date = cal.getTime();

int millis = cal.get(Calendar.HOUR_OF_DAY) * 3600000

+ cal.get(Calendar.MINUTE) * 60000

+ cal.get(Calendar.SECOND) * 1000

+ cal.get(Calendar.MILLISECOND);

/* we must use standard local time */

millis += tz.getRawOffset();

int offset = tz.getOffset(cal.get(Calendar.ERA),

cal.get(Calendar.YEAR),

cal.get(Calendar.MONTH),

cal.get(Calendar.DATE),

cal.get(Calendar.DAY_OF_WEEK),

millis);

if (offset != 0) {

SimpleDateFormat format = new SimpleDateFormat("dd MMM HH:mm:ss zzz",

Locale.US);

format.setTimeZone(tz);

errln("Wrong DST transition: " + tz

+ "\na date just after DST = " + format.format(date)

+ "\ngetOffset = " + offset);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值