JSTL格式化DB日期与时间报错:YYYYMMDD转YYYY/MM/DD、HHmm转HH:mm
我来帮你排查下问题哈~你现在的错误根源是解析日期时用错了匹配格式:你的${COLL.date}值是20160719(无分隔符的纯数字日期),但你用yyyy/MM/dd作为fmt:parseDate的pattern,这会导致解析失败,因为格式完全不匹配。
正确的日期格式化代码
先按照原始数据的格式(yyyyMMdd)解析日期,再重新格式化为带斜杠的样式:
<!-- 第一步:按原数据格式解析日期 --> <fmt:parseDate pattern="yyyyMMdd" value="${COLL.date}" var="parsedDate" /> <!-- 第二步:格式化为目标样式 yyyy/MM/dd --> <fmt:formatDate value="${parsedDate}" pattern="yyyy/MM/dd" var="formattedDate"/> <p>${formattedDate}</p>
时间格式化同样适用这个逻辑
你的${COLL.time}值是1234(属于HHmm格式),同样需要先解析再格式化:
<!-- 第一步:按原时间格式解析 --> <fmt:parseDate pattern="HHmm" value="${COLL.time}" var="parsedTime" /> <!-- 第二步:格式化为目标样式 HH:mm --> <fmt:formatDate value="${parsedTime}" pattern="HH:mm" var="formattedTime"/> <p>${formattedTime}</p>
小提示:如果${COLL.time}是数字类型(比如Integer),可以用${String.valueOf(COLL.time)}确保传入的是字符串格式,避免解析异常。
内容的提问来源于stack exchange,提问作者Ashok Charu
相关产品推荐
相关产品推荐

