JAVA时间的12小时与24小时制

William
2020-05-27 / 0 评论 / 23 阅读 / 正在检测是否收录...

问题场景:
由于业务需要,需要转换北京时间与UTC时间,两者相差8小时差,也就是比如现在是北京时间上午8点,那么UTC时间就是午夜12点。从中国联通泰利特平台接口获取数据时需要使用的是UTC时间,测试时能够获取,但是过了一会以后无法获取时间,接口返回数据为空。

问题分析:
编码的时候是有两台电脑,一台MacBook和一台Windows10系统的,测试的时候是用的windows电脑,正式代码是迁移到MacBook上面跑的。

因为我自己将windows电脑的时间个性化了(也就是在时间那里加入中文)导致原本是24小时制的,显示的时候是12小时制。

刚好在windows上测试的时候,用来转换的时间是没有考虑到不是24小时制的情况,就出现了如下情况:泰利特平台数据库是每1分钟更新一次数据,现在是北京时间上午9点,当非24小时制转换时,java代码获取到的是9:00,减去8小时时差就是同一天的凌晨1就会请求获取非合适时间获取数据。

解决方案:

Date date=new Date();
//转换成时间格式12小时制
SimpleDateFormat df_12=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

//转换成时间格式24小时制
SimpleDateFormat df_24=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.println("12小时制时间::"+df_12.format(date));
System.out.println("24小时制时间::"+df_24.format(date));

输出结果为:

12小时制时间::2017-12-07 03:55:04
24小时制时间::2017-12-07 15:55:04
0

评论 (0)

取消