admin管理员组文章数量:1794759
java时间戳 10位和13位
最近遇到一个比较头疼的问题,语言是java,将当前时间(new Date())set进bean中,然后使用fastjson将bean转换成json,存放在redis中,但问题就来了,首先时间yyyy-mm-dd hh:mm:ss格式转换成json会自动转成时间戳,13位的,而ios端只能解析10wei的时间戳。 问题1:为什么会生成13位的时间戳,13位的时间戳和10时间戳分别是怎么来的 经过百度得知,原来java的date默认精度是毫秒,也就是说生成的时间戳就是13位的,而像c++或者php生成的时间戳默认就是10位的,因为其精度是秒。 问题2:13位时间戳如何转换成10位时间戳 本来以为java中有设置可以修改其时间精度,后来在百度上没有找到,就只能采用其它方法来转化,这里提供两种方式来转换。 第一种:通过substring方法,将13位的时间戳最后三位数字截取 第二种:将13位时间戳除以1000取整。 ps:个人觉得这两种方法好low,目前没有更好的方法
另外提供一段时间戳转时间的代码:
/** * 时间戳转时间(10位时间戳) * @param time * @return */ public static String timestampToDate(long time) { String dateTime; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(FORMAT_SEC_FULL); long timeLong = Long.valueOf(time); dateTime = simpleDateFormat.format(new Date(timeLong * 1000L)); return dateTime; }
版权声明:本文标题:java时间戳 10位和13位 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686923397a118694.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论