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

Format DateTime in custom UTC Format using JSTL

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

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

编辑:-

价值=“08:41:00”对于timeSlot.getStartTime()

任何帮助或建议。

更新:

在使用 input type="time" 之后,它给了我这样的感觉

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

  • 当我请求页面时,我还绑定了一个本地时区偏移量 HttpServletRequest 的值。此本地时区偏移值是 用javascript计算。

获取本地时区偏移值的js代码

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

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格式。