关于GregorianCalendar一个用法的记录

用GregorianCalendar定义一个日期,注意其中的月为0-11,日为1-31,比如以下代码:

            Calendar calendar=new GregorianCalendar(1900,0,0);
            Date time = calendar.getTime();
            System.out.println("time = " + time);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy/M/d");
            String format = sdf.format(time);
            System.out.println("format = " + format);

输出的实际为:

time = Sun Dec 31 00:00:00 UTC 1899
format = 1899/12/31

要想输出为1900年1月1日,在new对象时应为

Calendar calendar=new GregorianCalendar(1900,0,1);

另外,POI读取日期时,得到的是一个字符串类型的数字;其实在Excel中查看的也是一个数字

此时要想处理成正确的时间格式,就要用到上面的GregorianCalendar类了;但是new对象时,日要用-1。比如:

        String excelStrDate = "44414";            
        Calendar calendar = new GregorianCalendar(1900, 0, -1);
        int intDays = Integer.parseInt(excelStrDate);
        Date date = DateUtils.addDays(calendar.getTime(), intDays);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/M/d");
        String format = sdf.format(date);
        System.out.println("format = " + format);

输出为:

format = 2021/8/6

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值