问题标签 [offsetdatetime]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
525 浏览

java - 如何从 Csv 文件中解析 OffsetDateTime

我正在尝试使用 opencsv 来解析这样的 csv 文件:

2020-09-18 06:50:00.000000

我正在尝试按照本教程添加解析的数据:https ://attacomsian.com/blog/spring-boot-upload-parse-csv-file 。这是我的模型:

我尝试解析 offsetDateTime

通过做 :

OffsetDateTime odt = OffsetDateTime.parse (myIndPrds.get (i) .getTime ());

在录制之前

但你似乎不想这样做

谢谢你的帮助

0 投票
2 回答
2816 浏览

oracle - 带有时区的 Java 和 Oracle 时间戳

我正在尝试使用休眠在 Oracle 中保存两个日期。两个日期在莫斯科时区具有相同的时间戳:2005-10-30T02:00+03:00[Europe/Moscow] 和 2005-10-30T02:00+04:00[Europe/Moscow](“Sun Oct 30 02:00:00 MSK 2005”和“Sun Oct 30 02:00:00 MSD 2005”)。这些日期在时间上相隔一小时,并且与冬/夏时间的转换有关。

我在 Oracle 中创建了表:

和我模块中的实体:

在实体中,所有字段都由单个日期初始化。保存后,Oracle 中的两个日期具有相同的值,如下所示:

ts = 2005-10-30 02:00:00.000000

TSLTZ = 2005-10-29 23:00:00.000000

TSTZ = 2005-10-30 02:00:00.000000 +04:00

为什么 oracle 对不同的日期(包括偏移量 +04:00)保持相同的值?有没有什么办法解决这一问题?

PS Postgres 正确存储日期。一个偏移量为 +03:00,另一个偏移量为 +04:00(分别为 2005-10-29 23:00:00.000000 和 2005-10-29 22:00:00.000000)。

更新

这就是我创建日期的方式:

如果我不使用 Hibernate 并直接使用 jdbc,情况不会改变。

更新2

如果我通过 jdbc 驱动程序将 OffsetDateTime 保存在带有本地时区的时间戳或带有时区的时间戳中,那么一切都很好。

我在数据库中看到:

但是,如果我保存 ZonedDateTime,则带有本地时区的时间戳中的值是正确的,但带有时区的时间戳中的值不正确。

在数据库中我看到:

最后两个值不正确。

0 投票
2 回答
119 浏览

java - DateTimeFormatter 问题

请参阅以下测试代码(java 11):

输出:enter code here

注意格式化的时间年份是2021。它只发生在 27/12,可能到 31/12。

谁可以给我解释一下这个?以及如何修复代码以获得正确的格式化字符串?

0 投票
2 回答
711 浏览

datetime - Kotlin DateTimeParseException

从https://api.spacexdata.com/v3/launches获取日期 此日期的格式为:2006-03-25T10:30:00+12:00。我想将其转换为“dd,mm,yyyy”,但总是出错:“java.time.format.DateTimeParseException: Text '2006-03-25T10:30:00+12:00' could not be parsed, unparsed text在索引 10 处找到"

我的代码:

我在字符串中获取数据,然后将其转换为日期以进行格式化,然后将日期转换回字符串以显示在 UI 上。我使用了不同的方法,但找不到正确的方法。我当前的语言环境是“RU”。

0 投票
1 回答
819 浏览

java - 反序列化为 OffsetDateTime 时如何使 Spring Kafka JsonDeserializer 保留时区偏移量

我通过 Kafka 收到一条消息,我知道其中有一个非 UTC 时区。当我使用org.apache.kafka.common.serialization.StringDeserializer来验证这一点时,我得到了带有时区的 ISO 8601 格式的正确时间戳:

当我切换到时,org.springframework.kafka.support.serializer.JsonDeserializer这丢失了。我的 POJO 看起来像这样:

当我记录收到的消息时,我得到:

我认为JsonDeserializer必须使用杰克逊,所以在我的application.yml配置中我设置:

这没有用。我还尝试了定制器:

这也不起作用。

我虽然可能它需要成为 Kafka 消费者的属性,所以我也尝试了:

还是不行。

有没有办法使JsonDeserializer工作正常并保持正确的时区偏移?

0 投票
1 回答
184 浏览

java - Java OffsetDateTime.parse() 为时间添加额外的零

以下代码返回一个 OffsetDateTime,如 2021-06-30T23:59:59.009966667Z,添加了 2 个额外的零。我在格式化程序中有 7 个 n,但它仍然返回 9 个数字。为什么?

0 投票
2 回答
45 浏览

java - OffsetDateTime 客户解析器

您好,我尝试使用 DateTimeFormatter 将 String 20110330174824917 解析为 OffsetDateTime 所以

但我
在线程“main”java.time.format.DateTimeParseException:无法解析文本“20110330174824917”中出现异常,在 java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1952) 处的索引 8 处找到未解析文本java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851) 在 java.time.LocalDateTime.parse(LocalDateTime.java:492)


嘿伙计们,这个问题似乎与 java 8 有关 https://bugs.openjdk.java.net/browse/JDK-8031085

谢谢大家的帮助

0 投票
0 回答
39 浏览

oracle - OffsetDateTime java8 ojdbc8 oracle insert cet to cest问题

您好,我在插入具有正确时区的 OffsetdateTime 时遇到问题我有字符串 20110401000000000 然后我像这样转换为 OffsetDateTime:

我得到 2011-04-01T00:00+01:00 - 现在一切都很好我插入数据库

在我的数据库中我看到

红色是错误的

是否转换为 cest

好奇心------------

如果日期 2021-03-03T00:00+01:00

在此处输入图像描述

放入数据库是正确的

-- 我的连接设置

c.getDefaultTimeZone() -> 欧罗巴/苏黎世

c.getSessionTimeZone() -> 欧罗巴/苏黎世

谢谢你的帮助

0 投票
1 回答
446 浏览

java - 当时间需要在本地时间保持不变时,在 Java 中使用 OffsetDateTime 处理夏令时,而不管 DST

我正在使用 Spring Boot (Java 8) 为餐厅应用程序开发后端,该应用程序公开了一些 REST API。与日期和时间相关的所有内容都OffsetDateTime通过对象和我使用的应用程序处理,默认情况下,"Europe/Rome". 这些对象也保存在数据库中。一切都很好,除了......夏令时开始了,现在餐厅的所有营业时间都关闭了一小时。

这显然是因为 pre-DST 的偏移量"Europe/Rome"+01:00,而 post-DST 是+02:00。因此,举个例子,餐厅的营业时间(保存在 DST 前的 DB 中)是08:30:00+01:00,但是09:30:00+02:00从 API 访问后 DST 时变为 (因为它会自动转换为系统的默认区域)。无论夏令时如何,我都需要餐厅的营业时间在当地时间保持不变。

我该如何处理这种情况并向我的用户提供一致的数据?

0 投票
0 回答
29 浏览

json - SpringBootTest和WebMvcTest在mockmvc测试中json中时间格式的差异

我正在使用 mockMvc 在 Spring Boot 中测试 REST 控制器。其中一个请求参数具有 OffsetTime 类型的属性。当我使用以下注释时:

mockMvc 中的以下条件为真: .andExpect(jsonPath("$.createdTime", is("2018-05-05T10:11:12.123+02:00")))

但是,当我使用注释(因为我必须使用一些额外的转换器)来:

我在测试中收到以下错误:

事实上,我也不想要 SpringBootTest 中的时间戳,我希望后者以“偏移”格式序列化日期。

我怎样才能实现它?添加

到 application.yml 并没有改变春季启动测试的任何内容。