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