使用JSTL以自定义UTC格式格式化DateTime

时间:2018-04-12 09:35:43

标签: java datetime jstl

我喜欢通过提供timeZone来格式化JSTL中的DateTime。但它并不完美。我经历了很多建议,但无法达到目标。我试过这个是

<fmt:formatDate value="${timeSlot.getStartTime()}" 
pattern="HH:mm" timeZone="UTC-6" var="startTime" />

修改的: -

对于timeSlot.getStartTime()

value =“08:41:00”

任何帮助或建议。

更新

使用input type="time"后,它就像那样

img

1 个答案:

答案 0 :(得分:0)

经过SO Q&A的一些调查和建议后,我以另一种方式解决了timezone问题。让我分享一下我的所作所为。

  • 当我请求页面时,我还绑定了本地TimeZone偏移 值为HttpServletRequest。此本地TimeZone偏移值为 用javascript计算。
获取本地时区偏移值的

js code

var offset = new Date().getTimezoneOffset();
var timeZone = offset / -60;
  • 我刚刚添加TimeZone Offsetdatabase获取的数据。

Java代码

String timeZoneValue = request.getParameter("timeZone");
timeZoneValue = Long.valueOf(timeZone).longValue(); // convert string to long value.
// get the calendar instances
Calendar cal = Calendar.getInstance();
cal.setTime(time); // set the time which get from DB
cal.add(Calendar.MINUTE, timeZoneValue.intValue() * 60); // added the timezone offset.
// formatting  the time
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");  
parseTime = simpleDateFormat.format(cal.getTime()); 
Date newDate = simpleDateFormat.parse(parseTime);

这种机制非常适合我。谢谢。

注意:在数据库中,我总是将时间保存为UTC格式。