日期问题

public static void main(String[] args) {
//  -28800000 = - 8*3600 * 1000
     System.out.println(new Date("1970/01/01 00:00:00").getTime());
}

为什么是负值?东八区按理应该是正 28800000吧

    public long getTime(CalendarDate var1) {
        long var2 = this.getFixedDate(var1);
        long var4 = (var2 - 719163L) * 86400000L + this.getTimeOfDay(var1);
        int var6 = 0;
        TimeZone var7 = var1.getZone();
        if (var7 != null) {
            if (var1.isNormalized()) {
                return var4 - (long)var1.getZoneOffset();
            }

            int[] var8 = new int[2];
            if (var1.isStandardTime()) {
                if (var7 instanceof ZoneInfo) {
                    ((ZoneInfo)var7).getOffsetsByStandard(var4, var8);
                    var6 = var8[0];
                } else {
                    var6 = var7.getOffset(var4 - (long)var7.getRawOffset());
                }
            } else if (var7 instanceof ZoneInfo) {
               //28800000
                var6 = ((ZoneInfo)var7).getOffsetsByWall(var4, var8);
            } else {
                var6 = var7.getOffset(var4 - (long)var7.getRawOffset());
            }
        }
// 这里直接取负值是?
        var4 -= (long)var6;
        this.getCalendarDate(var4, var1);
        return var4;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值