Java中GregorianCalendar的基本使用

本文介绍了Java中GregorianCalendar如何处理时区问题,特别是东八区(中国时区)的时间转换。默认情况下,时间会被转换为格林尼治标准时间(GMT),导致与预期时间相差8小时。通过设置TimeZone,可以正确获取时间戳。SimpleTimeZone的参数配置也进行了说明,包括时区偏移毫秒数和标识(UTC/GMT)。此外,还提到了月份和日期的起始值(月从0开始,日从1开始)。
摘要由CSDN通过智能技术生成

使用默认时区即东八区:

        int  ONE_SECOND = 1000;
         int  ONE_MINUTE = 60*ONE_SECOND;
         int  ONE_HOUR = 60*ONE_MINUTE;
         long ONE_DAY = 24*ONE_HOUR;
         long ONE_WEEK  = 7*ONE_DAY;
         println("one week: " + ONE_WEEK);
        println("one day: " + ONE_DAY);
        GregorianCalendar calendar = new GregorianCalendar(1970,0,1);
        long timestamp = calendar.getTimeInMillis();
        println("timestamp: " + timestamp);
        println("minute: " + timestamp/ONE_MINUTE);

timestamp为根据构造方法传入的时间和使用的时区,首先把时间转换为零时区(即英国格林尼治天文台旧址)的时间后,再转化为相对于1970,1月1日00:00:00的毫秒数。

所以如果不设置时区TimeZone,则上述代码得出的不是0,而是-28800000,即-8小时。因为东八区比零时区晚了8小时。再

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值