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

Java 8将UTC时间转换为EDT/EST,使日期保持不变

能文华
2023-03-14

我在java中使用ZonedDateTime作为变量。

我想将变量的值(默认UTC时区)转换为“America/New York”的时区,以便日期保持不变。

示例4:00 am UTC=12:00 am EST。从ZonedDateTime变量中添加或减去小时,以使日期不变。

我们如何实现这种转换?

共有3个答案

夹谷弘亮
2023-03-14

保持你的约会不变,我觉得这样行得通

    ZonedDateTime utc = ZonedDateTime.now(ZoneOffset.UTC);
    ZonedDateTime est = utc.plusHours(5); //normally est is 5 hours ahead
顾俊哲
2023-03-14

如果要将UTC的日期和EST的时间结合起来,可以这样做:

ZonedDateTime utc = ...

ZonedDateTime est = utc.withZoneSameInstant(ZoneId.of("America/New_York"));

ZonedDateTime estInSameDay = ZonedDateTime.of(utc.toLocalDate(), est.toLocalTime(), ZoneId.of("America/New_York"));
郎雪风
2023-03-14

您可以通过转换为LocalDateTime并返回到具有指定时区的ZonedDateTime来实现:

ZonedDateTime zoned = ZonedDateTime.now();
LocalDateTime local = zoned.toLocalDateTime();
ZonedDateTime newZoned = ZonedDateTime.of(local, ZoneId.of("America/New_York"));
 类似资料:
  • 问题内容: 我有一个带有日期/时间值的字段,如下所示: 在UTC中。在查询中如何将其转换为EST? 我正在尝试类似的操作,但是会引发错误。 问题答案: 我必须对其进行一些微调,以使其在我的数据库上工作,但这是可行的: 关键是“在时区”语法。

  • 如何在Ruby中将格式为< code > ' 2009-02-02 00:00:00 ' 的UTC时间戳转换为EST/EDT?注意,我没有使用Rails,而是一个简单的Ruby脚本。 1如果日期范围介于 EST(通常是 1 月至 3 月中旬)之间,则需要 UTC-5 小时。对于EDT,它是UTC-4小时。 到目前为止,我有以下功能将UTC转换为EST/EDT。 上面的代码做了我想要的,但是我的解决

  • 问题内容: 我需要有关此java方法的一些建议。此方法的目的是采用表示日期的字符串-该字符串是从EST时区中的日期创建的-并将其转换为UTC时区中的java Date对象。 我看到的问题是dt的值似乎已关闭。例如,如果dateString为‘10 / 16/2012 12:06 PM’-我期望dt(以UTC为单位)的值类似于“ 2012年10月16日,星期二,下午4:06”。取而代之的是,dt的值

  • 问题内容: 我需要一种简便的方法,可以在不使用任何库的情况下将日期时间戳转换为UTC(从服务器所在的任何时区)。 问题答案: 尝试getTimezone和setTimezone,请参见示例 (但这确实使用了一个类) 更新: 没有任何类,您可以尝试这样的事情: 注意:您可能还需要将时区设置回原始

  • 问题内容: 从服务器上,我得到了这种格式的datetime变量:它是UTC时间。我想使用JavaScript将其转换为当前用户的浏览器时间。 如何使用JavaScript或jQuery完成此操作? 问题答案: 在将字符串转换为javascript中的日期之前,将’UTC’附加到字符串中: