百里香时区
Thymeleaf timezone
我想在 GMT+6
中获取当前时间,但无法实现。传递 timezone
的正确格式是什么?
我尝试了以下方法 -
[[${#dates.createNowForTimeZone('ASIA/DHAKA')}]]
[[${#dates.createNowForTimeZone("ASIA/DHAKA")}]]
[[${#dates.createNowForTimeZone('GMT+6')}]]
[[${#dates.createNowForTimeZone("GMT+6")}]]
但是,都给在EDT
的时间。
我建议您使用 Thymeleaf“extras”库来处理 Java 8 的 java.time
classes,并避免任何与旧的和有缺陷的 java.util.Date
class.
图书馆:
Thymeleaf - Module for Java 8 Time API compatibility
如果您使用的是 Maven,则可以使用以下依赖项将其添加到您的项目中:
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
<version>3.0.4.RELEASE</version>
</dependency>
否则您可以从 here.
手动下载 JAR
安装新的 JAR 后,您可以使用它:
${#temporals.createNowForTimeZone(zoneId)} // return a instance of java.time.ZonedDateTime
例如如下:
<div th:text="${#temporals.createNowForTimeZone('Asia/Dhaka')}"></div>
或者,使用您问题中的语法,如下所示:
[[${#temporals.createNowForTimeZone('Asia/Dhaka')}]]
示例输出:
2022-05-19T18:57:32.190245400+06:00[Asia/Dhaka]
这是为目标时区生成的,当时我的本地日期时间是 Thu May 19 08:57:32 EDT 2022
。
关于区域 ID 的注意事项:
您可以阅读有关有效区域 ID 的信息 here。在您的情况下,您需要注意匹配 ID 文本的确切大小写 - 因此它必须是 Asia/Dhaka
- 而不是 ASIA/DHAKA
.
另见 Where is the official list of zone names for java.time?
格式化注意事项
您可能想要格式化日期字符串,在这种情况下,请查看 here.
列出的各种 #temporals.format()
函数
但您可能还想考虑格式化 Java 中的字符串,以使您的 Thymeleaf 模板不那么混乱。
我想在 GMT+6
中获取当前时间,但无法实现。传递 timezone
的正确格式是什么?
我尝试了以下方法 -
[[${#dates.createNowForTimeZone('ASIA/DHAKA')}]]
[[${#dates.createNowForTimeZone("ASIA/DHAKA")}]]
[[${#dates.createNowForTimeZone('GMT+6')}]]
[[${#dates.createNowForTimeZone("GMT+6")}]]
但是,都给在EDT
的时间。
我建议您使用 Thymeleaf“extras”库来处理 Java 8 的 java.time
classes,并避免任何与旧的和有缺陷的 java.util.Date
class.
图书馆:
Thymeleaf - Module for Java 8 Time API compatibility
如果您使用的是 Maven,则可以使用以下依赖项将其添加到您的项目中:
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
<version>3.0.4.RELEASE</version>
</dependency>
否则您可以从 here.
手动下载 JAR安装新的 JAR 后,您可以使用它:
${#temporals.createNowForTimeZone(zoneId)} // return a instance of java.time.ZonedDateTime
例如如下:
<div th:text="${#temporals.createNowForTimeZone('Asia/Dhaka')}"></div>
或者,使用您问题中的语法,如下所示:
[[${#temporals.createNowForTimeZone('Asia/Dhaka')}]]
示例输出:
2022-05-19T18:57:32.190245400+06:00[Asia/Dhaka]
这是为目标时区生成的,当时我的本地日期时间是 Thu May 19 08:57:32 EDT 2022
。
关于区域 ID 的注意事项:
您可以阅读有关有效区域 ID 的信息 here。在您的情况下,您需要注意匹配 ID 文本的确切大小写 - 因此它必须是 Asia/Dhaka
- 而不是 ASIA/DHAKA
.
另见 Where is the official list of zone names for java.time?
格式化注意事项
您可能想要格式化日期字符串,在这种情况下,请查看 here.
列出的各种#temporals.format()
函数
但您可能还想考虑格式化 Java 中的字符串,以使您的 Thymeleaf 模板不那么混乱。