java中以毫秒表示的时间字符串转化为Date对象

来源:互联网 发布:jenkins 构建php 编辑:程序博客网 时间:2024/05/01 12:48

首先说一下遇到的问题,前台传到后台的json串中,时间格式是以毫秒的形式展现的(即13位长整型数表示,例如“1368749154497”),然后我想通过gson的fromJson函数将传过来的json对象转化为javabean,但是出错,有异常com.google.gson.JsonSyntaxException,显示毫秒表示的时间不能解析。根据在网上一番查询加上自己的推断得出以下结论:无法给gson一个与json中相同的日期时间格式,让gson来解析json中的时间数据,即找不到合适的参数给gsonbuilder.setDateFormat这个函数,让他来解析13位的时间数据。

问题解答过程:gson的时间格式转换部分默认是用java中SimpleDateFormat这个类的format和parse函数。SimpleDateFormat类用于对时间类型的数据转换,format(格式化)是将Date的对象转换为StringBuffer的字符串,parse(解析)相反,将字符串转化为Date对象。根据我查资料,fomat函数用的比较多一些,因为在将Date对象转化为字符串时有很多转换模式字母(参考java API),这样可以丰富时间输出的各种形式。举个例子:


而对于parse函数,就目前我的了解来说,它的功能是将文本转化为Date对象,在转化的时候限制还是比较大的,比如要转化的字符串为”2013-05-1718:04:05”,设置SimpleDateFormat的dateFormat是“MM-dd-yy HH:mm:ss”,时间部分可以正常转化,但年月日就全错了,它并不会自己找到“y”表示年等。像以毫秒表示的时间就更难了。所以最出问题的比较好的解决办法是,保证前台传过来的数据格式化比较清晰,按照“yy-MM-dd HH:mm:ss”的形式。

原创粉丝点击