踩坑案例:Java获取日期,在windows系统上运行正常,Linux系统运行出现异常

java中获取日期

因为业务需要做的一个接口,根据传入的时长字段,取对应区间内的数据,
刚开始在Windows系统的服务器上运行,没有任何问题,
后来在Linux系统上运行的时候出现无法查到数据的情况,

原本的代码是这样的

        //region 开始时间时间
        DateFormat d1 = DateFormat.getDateTimeInstance();//获取区域日期
        String beginfutureTime = d1.format(now);//日期格式化
        System.out.println("1 "+beginfutureTime);
        //endregion
        //region 结束时间增加hourTime小时
        Calendar cal = Calendar.getInstance();//声明一个用来计算时间的类Calendar
        cal.setTime(now);//设置当前日期
        cal.add(Calendar.HOUR, Integer.parseInt(hourTime));// 增加hourTime小时
        now = cal.getTime();
        String endfutureTime = d1.format(now);
        System.out.println("2 "+endfutureTime);

将日志导出后发现,输出的时间是:
Nov 26, 2021 2:40:20 PM

但是按照正常情况应该是:
2021-11-26 14:40:20
并且在Windows系统中测试也是正常的,明显是系统不同的原因。

更改后的代码

        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //region 开始时间时间
        String beginfutureTime = format.format(now);//日期格式化
        System.out.println("1 "+beginfutureTime);
        //endregion
        //region 结束时间增加hourTime小时
        Calendar cal = Calendar.getInstance();//声明一个用来计算时间的类Calendar
        cal.setTime(now);//设置当前日期
        cal.add(Calendar.HOUR, Integer.parseInt(hourTime));// 增加hourTime小时
        now = cal.getTime();
        String endfutureTime = format.format(now);
        System.out.println("2 "+endfutureTime);

使用SimpleDateFormat替换原来的DateFormat,

之后在Linux中与Windows中输出的日期格式同样是2021-11-26 14:40:20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值