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

19 篇文章 0 订阅
4 篇文章 0 订阅

首先说一下遇到的问题,前台传到后台的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”的形式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Java的日期工具类将字符串对象"20230822"转换为毫秒级时间戳。首先,你需要使用SimpleDateFormat类来定义日期格式,然后使用该格式将字符串转换为Date对象,最后调用Date对象的getTime()方法将其转换为毫秒级时间戳。 以下是一个示例代码: ```java import java.text.ParseException; import java.text.SimpleDateFormat; public class Main { public static void main(String[] args) { String dateString = "20230822"; String pattern = "yyyyMMdd"; SimpleDateFormat sdf = new SimpleDateFormat(pattern); try { long timestamp = sdf.parse(dateString).getTime(); System.out.println(timestamp); } catch (ParseException e) { e.printStackTrace(); } } } ``` 在上述代码,我们定义了日期字符串"20230822"和日期格式"yyyyMMdd"。然后,我们使用SimpleDateFormat的parse()方法将字符串转换为Date对象,并使用getTime()方法获取毫秒级时间戳。最后,我们将结果打印出来。 运行上述代码,你将得到字符串对象"20230822"对应的毫秒级时间戳。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [时间字符串时间戳](https://blog.csdn.net/qq_35461948/article/details/121033638)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Java 毫秒级时间戳与日期字符串相互转化](https://blog.csdn.net/baidu_38225647/article/details/101316740)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值