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

在java 8中使用正确的偏移量将OffsetDateTime转换为LocalDateTime

罗鸿畴
2023-03-14

当我尝试将offsetdatetime从java.time转换为localdatetime时,我希望得到的localdatetime能够用本地时区更新。因此,如果我的offsetdatetime2011-12-03T10:00:00Z,并且我的本地时区是UTC+2,我希望LocalDateTime为2011-12-03T12:00:00,但我得到的是2011-12-03T10:00:00。我使用offsetdatetime具有的ToLocaldatetime()方法转换它。它似乎只是截断了日期,去掉了偏移部分,而没有调整时间。

因此,我试图找到一种方法来获得localdatetime来表示本地日期时间,同时考虑区域偏移量。按照示例,我希望获得2011-12-03T12:00:00

共有1个答案

刁星渊
2023-03-14

我想您要找的是offsetdatetime.atzonesameinstant:

OffsetDateTime.parse("2011-12-03T10:00:00Z")
    .atZoneSameInstant(ZoneId.systemDefault())
    .toLocalDateTime()
 类似资料:
  • 我试图弄清楚如何将LocalDateTime转换为偏移量为0的Date对象。 我使用的将LocalDateTime转换为日期的当前代码是: LocalDateTime: 转换到日期后: 是的,我看到有一个区域偏移量被传递到Instant中,但我不确定如何做我所要求的。

  • 当我这样创作的时候: 一切都工作得很好,但我尽量避免转换。是否可以通过只使用对象来实现这一点?

  • 问题内容: 为您准备的头抓板。 我正在从IPInfoDB的API中获取地理IP数据,它从UTC返回 包括 DST 的时区偏移(如果当前已反映)。 例如,我住在EST(-5),目前是DST,因此geo IP API返回()作为偏移量。 因为DST令人头疼,所以这太好了。但是令我惊讶的是,它又引起了头疼。 我将此数据加载到PHP中,以通过AJAX传递给应用程序。我想在应用程序上获取IP地址的实时本地时

  • 我有一个格式为“2019-04-25T16:34:28-05:00”的字符串。我已经通过模式“yyyy-mm-dd't'hh:mm:ssz”通过joda-time解析了字符串。 它在DateTime中给出的输出是“2019-04-25t15:34:28.000-06:00”。

  • 我有这个代码: 此打印: 如何打印?用偏移量代替Z。

  • 我正在尝试将ISO日期时间隐藏到LocalDateTime: 这段代码起作用--它将它转换为localdate(包括offset)。但问题是当我通过日期没有偏移:2011-12-03T10:15:30- 我知道为什么我有这个例外,问题是如何将包括偏移量在内的两个日期转换为LocalDateTime?。我想避免一些字符串解析(检查字符串是否包含'+'/'-')。