问题标签 [localdatetime]

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 投票
3 回答
95 浏览

mysql - Spring JPA 和 MySQL 存储不正确的 LocalDateTime 值

我正在使用 Spring Data JPA 将日期时间值存储在 MySQL 表列中。但它的表现真的很奇怪。当我创建应该存储的实体时,我有用于创建日期和时间的 LocalDateTime 字段,该字段是通过 LocalDateTime.now() 设置的。当我调试代码并查看运行中的代码时,LocalDateTime 字段被实例化为正确的日期和时间。但是由于某种原因,当实体存储在 MySQL 数据库中时,时间被设置为过去的两个小时。如果时间是下午 4 点,它会在数据库表中设置为下午 2 点。但是,当我再次使用我的 jpa 存储库读取数据库中的值时,它再次被提前 2 小时推送,尽管它以 tho 小时偏移量存储。所以这有点像两个错误就是一个正确......我猜?怎么会这样?这看起来很疯狂,而且……不合逻辑。

0 投票
0 回答
106 浏览

json - 更改 Jackson SpringBoot 默认以序列化 LocalDateTime 对象

我正在尝试更改 SpringBoot 的默认序列化,以便它可以处理 LocalDateTime 对象。这适用于我注释过的 POJO

但是我有一个使用 WebFlux 的应用程序,其中 Map 作为参数传递,并且没有正确序列化。代码看起来像这样,其中contract是 Map<String, Object>,并且 Map 中的一个条目的类型为 LocalDateTime

我能够创建一个 ObjectMapper

然后使用mapper.writeValueAsString(contract),正常工作,将日期输出为“2021-06-29T12:46:36”。我的 POM 中已经有 jackson-datatype-jsr310。

但我无法让它与 WebFlux 一起使用

尝试定义一个bean

如果我将 Spring 的 ObjectMapper 与 bean 一起注入到我的代码中,那么如果我这样做了,它就可以工作mapper.writeValueAsString(contract)。所以这至少证明了Spring的ObjectMapper发生了变化。但是当我通过 WebClient 发送地图时,服务器会以这种格式获取日期:date=[2021, 6, 23, 20, 48, 50]

0 投票
1 回答
83 浏览

java - Java 变量是一台机器上的 Timestamp 和另一台机器上的 LocalDateTime

我有一个 Java 应用程序,当我在一台机器上调试它时,变量的类型是 LocalDateTime,但在另一台机器上它是 Timestamp。

这是实际变量

这是 LocalDateTime 之一,Apache 版本是 7.0.106,它与 Windows Server 2019 一起运行

这是时间戳一,Apache 版本是 7.0.109,它与 Windows 10 一起运行

我不认为它与版本有关,因为它只是一个补丁,并且阅读更新日志没有任何关于它的内容,我认为它可能是一些配置,但我找不到任何东西,如果有人可以的话给我一个指南或一个地方看,我将不胜感激。

0 投票
2 回答
371 浏览

java - 如何修复错误 java.time.format.DateTimeParseException: Text '2021-07-24 18:11:33.0' could not be parsed, unparsed text found at index 19

我将确认代码链接发送到注册用户的电子邮件中,当单击链接时,我需要激活状态以批准会员资格,但我收到标题中显示的错误。一切都是真的,但我不明白为什么会这样。这是我的代码:

1)在此代码部分,用户成为会员,确认代码将发送到他的电子邮件。

2)在此代码部分,执行用户点击发送到电子邮件的链接后的步骤。因此,如果代码正确,我将验证数据库中用户的状态列。

3)但问题是当我点击发送到电子邮件的链接时,我收到以下错误。错误 java.time.format.DateTimeParseException: Text '2021-07-24 18:11:33.0' could not be parsed, unparsed text found at index 19

4)这是我与数据库相关的方法。

0 投票
1 回答
388 浏览

json - 将 swagger 格式:日期时间转换为 LocalDateTime.class

我有一个无法更改的 swagger.json 规范。我正在使用swagger- codegen 从我的 swagger.json 创建一个库,如下所示:

问题是在我的 swagger.json 中,一些格式被声明为date-time,并且 codegen 将它们转换为OffsetDateTime类类型......但是我的服务请求的响应以 LocalDateTime 的形式出现,就像这样

因此,当我使用该库并尝试反序列化包含2022-04-22T10:36:13.383到我的类的 JSONObject 时,它会失败,因为它无法转换2022-04-22T10:36:13.383OffsetDateTime.

最终,经过一番搜索,我关注了其他一些类似的线程并且我设法将OffsetDateTime类型更改为LocalDateTime使用导入和类型映射,如下所示:

但现在的问题是只创建带有,的swagger-codegenJSON 类,如下所示:OffsetDateTimeTypeAdaperDateTypeAdapterLocalDateTypeAdapterSqlDateTypeAdapter

在此处输入图像描述

因此,现在每当我尝试以 LocalDateTime 格式反序列化包含我的日期的对象时,我最终都会收到此错误:


到目前为止我尝试了什么:

  • 我让 codegen 将我的date-time格式转换为OffsetDateTime然后手动更改"expirationDeadline": "2022-04-22T10:36:13.383""expirationDeadline": "2022-04-22T10:36:13.383+01:00"它工作正常。
  • 我让 codegen 将我的date-time格式转换为LocalDate然后手动组合"expirationDeadline": "2022-04-22T10:36:13.383""expirationDeadline": "2022-04-22"它工作正常。
  • 生成库后,我手动创建了LocalDateTimeTypeAdapter只是从另一个适配器复制逻辑,现在它可以工作了,我可以将预期的格式转换为LocalDateTime格式!

结束语(实际求助)

不幸的是我不能改变这种格式,所以我假设我需要一种方法来在我运行命令时swagger codegen生成它。LocalDateTimeTypeAdapter我有什么论据可以让我的命令发生这种情况吗?谁能帮我?

0 投票
0 回答
37 浏览

java - java.time.format.DateTimeParseException:无法解析文本“24:00:00”:HourOfDay 的值无效(有效值 0 - 23):24

我正在尝试将日期和时间值转换为 LocalDateTime:

但是,我收到一个错误:

java.time.format.DateTimeParseException:无法解析文本“24:00:00”:HourOfDay 的值无效(有效值 0 - 23):24

我尝试使用自己的 DateTimeFormatter:

但是,此 DateTimeFormatter 不适用于 LocalDateTime:

LocalDateTime 类型中的 (LocalDate, LocalTime) 方法不适用于参数 (LocalDate, TemporalAccessor)

有人可以帮助我吗?我需要一个 LocalDateTime-Object 来计算两个对象之间的持续时间:

0 投票
1 回答
87 浏览

java - Java ZonedDateTime 不会将 UTC 调整为本地区域

这段代码:

输出这个:

如何打印调整后的时间?我希望结果是2021-08-11T04:15.

0 投票
1 回答
61 浏览

java - 使用 DateTimeFormatter 将不同格式的 DateTime 处理为最长的唯一格式

我为 DateTime 列提供了多种输入格式,其中包括1."MM/dd/yyyy HH:mm:ss a" 2."MM/dd/yyyy HH:mm:ss" 3."MM/dd/yyyy HH :mm" 4."yyyyMMdd"

这应该被格式化并给我一个最长格式的输出,即1."MM/dd/yyyy HH:mm:ss a"如果不存在,则用00值填充剩余的格式。

这就是我正在尝试的:

如果我走错了,请推荐一种不同的方法或为我解决这个问题。在此先感谢您的帮助,我们将不胜感激。

0 投票
1 回答
37 浏览

java - 如何确定在文本字段中输入的时间是否在两个预先确定的开市和收市时间范围内?

公司的营业时间为上午 8 点至晚上 10 点。无论在文本字段中输入什么时间,下面的代码似乎都会增加 4 小时。因此,如果我将开放时间更改为 11:59,我会得到正确的上午 8 点开始日期,但无法将结束时间更改为 26:01,因此我无法让结束时间正常工作。数据必须以 UTC 格式存储在数据库中,但出于显示目的,它以 EST 格式显示。

0 投票
1 回答
37 浏览

java - Java 16 DateTimeFormatter 解析问题

我正在尝试解析日期

我期待 LocalDateTime 因为最后一个“Z”不应该像单引号一样影响。

顺便说一句,以下代码正在运行