JSP时间戳格式问题

7 篇文章 0 订阅

Date类型的数据从后端传到前端之后变成了long类型的时间戳形式,不是按照日期、时间的格式显示,因此需要将时间戳转成正常的时间格式。

网上提到比较多的方法是利用fmt标签来进行转换。

首先引入标签库如下:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

然后在jsp页面类似下面这样进行转换:

<jsp:useBean id="Timestamp" class="java.util.Date"/> 
<c:set target="${Timestamp}" property="time" value="${obj.timestamp}"/> 
<fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss" value="${Timestamp}" type="both"/> 

但是按照上面的方法尝试之后,发现时间戳确实转换成了日期,但是日期一直是1970-1-1。

根据在网上查找的资料,提到比较多的是说时间戳是有单位的:

单位为秒时,时间戳为10位,例如1574741563
单位为毫秒时,时间戳为13位,例如1574741563000

js里的new Date()方法默认是将毫秒(ms)为单位的时间戳转换为时间,将10位的时间戳乘以1000转换为13位的时间戳就可以正确转换了

但是看了下前端接收到的时间戳值已经是13位的,所以尝试了这种方式也没能解决问题。

最后只能利用该时间戳的值新建一个Date类型的变量,然后依次获取这个Date类型变量的年份、月份和日期,利用字符串拼接得到所需要的日期形式。类似下面这样:

//将3个时间戳转成字符串形式
var borrowtime=new Date(item.borrowDate);
borrowtime=borrowtime.getFullYear()+"-"+(borrowtime.getMonth()+1)+"-"+borrowtime.getDate();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值