当前位置: 首页 > 知识库问答 >
问题:

如何格式化ZonedDateTime

湛玄裳
2023-03-14

我正在尝试将存储为UTC的日期时间转换为给定时区的日期时间。据我所知,ZonedDateTime是正确的(“美国/芝加哥”比UTC晚5小时),但DateTimeForware在格式化日期时间时没有考虑偏移量。

我的挂钟时间:12:03 pm

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy hh:mm a")
LocalDateTime now = LocalDateTime.now(ZoneOffset.UTC);
ZonedDateTime zonedDateTime = now.atZone(ZoneId.of("America/Chicago"));

log.info("Now: " + now);
log.info("Zoned date time: " + zonedDateTime);
log.info("Formatted date time: " + zonedDateTime.format(formatter));

输出:

Now: 2019-08-29T17:03:10.041
Zoned date time: 2019-08-29T17:03:10.041-05:00[America/Chicago]
Formatted date time: 08/29/2019 05:03 PM

我期望的格式化时间为:2019年8月29日下午12:03

共有1个答案

郏博瀚
2023-03-14

LocalDateTime是一个没有时区的日期/时间。因此,您所做的是获取UTC日期时间,然后使用<代码>。atZone告诉Java这个日期/时间实际上是美国/芝加哥时间,而不是将其转换为正确的时区。

你应该这样做:

ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC);
ZonedDateTime zonedDateTime = now.withZoneSameInstant(ZoneId.of("America/Chicago"));

log.info("Now: " + now);
log.info("Zoned date time: " + zonedDateTime);
log.info("Formatted date time: " + zonedDateTime.format(formatter));

 类似资料:
  • 问题内容: 我正在使用bootstrap-datetimepicker和ISO8601 datetime格式,如其选项部分所述 在我的控制器中 它以(console.log)将数据发送到后端 并保存为数据库 在我的模板中 我在HTML上看到的输出为 但是根据Angular doc,它应该用于格式 我想念的是什么? 问题答案: 现在,我已经创建了一个过滤器 作为依赖项添加为 并用作 并将日期显示为

  • 本文向大家介绍如何将Java LocalDateTime格式化为ISO_DATE_TIME格式,包括了如何将Java LocalDateTime格式化为ISO_DATE_TIME格式的使用技巧和注意事项,需要的朋友参考一下 首先,设置日期: 现在,将日期时间格式化为ISO_DATE_TIME格式: 示例 输出结果

  • 问题内容: 如何格式化双精度字符为字符串,并在整数和小数部分之间加点​​? 以上格式仅带有逗号:“,”。 问题答案: 正在使用JVM的默认语言环境。您可以使用或直接使用任何语言环境。 要么 要么 要么

  • 当前状态: 我有一个使用Java 1.8.161、Maven 3.3.9、SpringBoot 2.0.1、工具Jenkins和GitLab构建的项目。我想使用google java格式作为整个团队的标准。 我的调查/解决方案: 在调查过程中,我找到了解决方案,这听起来很简单。只需更新pom文件: 而且很有效。如果我运行编译、打包、验证、安装或部署Maven lifecycle,代码就会格式化。

  • 我们可以看到格式化就是通过格式字符串得到特定格式: format!("{}", foo) -> "3735928559" format!("0x{:X}", foo) -> "0xDEADBEEF" format!("0o{:o}", foo) -> "0o33653337357" 根据使用的参数类型,同样的变量(foo)能够格式化成不同的形式:X, o 和未指定形式。 这个格式化的功能是通过 t

  • 问题内容: 我正在尝试使用这种格式来格式化当前时间。 输出: 有什么建议? 问题答案: 用 由于Go使用以下常量来格式化日期,请参阅此处