使用 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
格式。
我喜欢在 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
格式。