如何解决用Java转换日期
我正在尝试将从数据库返回的日期转换为/Date(1570474808430)/
。我想将其转换为标准日期时间结果,例如它在数据库中显示为:2020-08-04 11:08:22.630
。这有可能吗?我不完全确定为什么它在数据库中显示为日期时间,但在前端返回为/Date(1570474808430)/
。
我尝试使用以下代码进行处理:
let oldDate = /Date(1570474808430)/
let updatedDate = new Date(oldDate);
console.log(updatedDate)
我的预期结果是将/Date(1570474808430)/
转换为日期时间:2020-08-04 11:08:22.630
解决方法
您可能不知道的代码段实际上尝试将正则表达式文字传递给Date
构造函数。您的API返回的实际上是一个字符串,格式为/Date(xxx)/
,其中xxx似乎是Unix时间戳。为了将其转换为Javascript日期对象,我们需要解析时间戳(假设数据始终具有这种格式),具有讽刺意味的是,最简单的方法可能是正则表达式:
const oldDate = "/Date(1570474808430)/";
const timeStamp = Number(oldDate.match(/\/Date\((\d+)\)\//)[1]);
const updatedDate = new Date(timeStamp);
console.log(updatedDate)
如果您可以保证您的数据将采用这种格式,则此方法有效-但坦率地说,它不是好的代码,如果您的数据并非总是采用这种格式,则肯定会导致问题。如果可能的话,您能做的最好的事情就是更新您的数据,使其以标准格式保存有意义的日期字符串。否则,至少要有一个代表Unix时间戳的数字,而没有/Date(...)/
问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。