问题标签 [localdate]

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 回答
1127 浏览

java - JPA CreateNativeQuery 返回错误的日期

我们最近将一个项目从使用 Hibernate 4 更新到了 Hibernate 5.2,随之而来的是需要更新我们所有的 Criteria 以使用 JPA。在大多数情况下,一切正常,但我有一个不再运行的查询。我们正在查询的表上的字段之一是数据库中的 DATE 类型。

当我直接在桌子上查询时,我得到了日期 - 说它是“2017-04-20”。但是,当我使用 JPA 的 createNativeQuery 在我们的开发服务器上运行相同的查询时,我得到了日期“2017-04-19”

我不认为这是查询的问题,因为我通过 mysql 终端和 java 运行完全相同的查询并得到不同的结果。我运行的查询是在下面的示例中记录的查询。我认为这可能是一个时区问题,因为我在本地环境中没有这个问题,只是在我的开发服务器上,但在我们更新到新版本的 Hibernate 之前它也不是问题。

我的 DTO 对象的构造函数:

编辑:

我认为这实际上是 java.sql.Date 类型的问题,因为我尝试在我的开发服务器上打印出来,它还返回“2017-04-19”而不是 20 日。当我在 mysql 控制台中运行查询时,我不明白为什么这与结果不匹配,看来它们对我来说应该是一样的。

0 投票
3 回答
18948 浏览

java - 如何使用可移植的 DateTimeFormatter 格式化 java.util.Date?

如何java.util.DateDateTimeFormatter便携式格式化?

我无法使用

因为我担心使用 ofZoneId.systemDefault()会带来一些变化。

我需要完全格式化我拥有的那个对象。

更新

注意:时间就是时间。不是空间。时区是非常粗略的经度度量,即空间。我不需要它。只有时间(和日期)。

更新 2

我编写了以下程序,证明它Date不仅包含正确的“即时”:

输出如下:

虽然它应该是

如果Date是“即时”。

数字107990003*60*60*1000-1000- 我当地时间的时区偏移量。

这意味着,Date该类是双重的。它的毫秒部分可能会相对于hh mm ss部分偏移时区偏移。

这意味着,如果任何实用程序Date根据其部件 () 返回对象,hh mm ss则它会隐式转换为本地时间。并且getTime()同时意味着不同的时间。我的意思是在不同的机器上,如果这个程序同时运行,getTime()将是相同的,而时间部分将是不同的。

因此,开头的代码示例是正确的:它采用 的“即时”部分Date,并提供系统时区部分,该部分在Date. 即它将对偶Date对象转换为LocalDateTime具有相同部分的显式对象。因此,之后的格式是正确的。

更新 3

活动更有趣:

这个测试失败了。

UDPATE 4

新代码。献给所有信徒。

输出:

0 投票
1 回答
1365 浏览

java - Java LocalDate 格式化

寻找有关 LocalDate 的帮助,到目前为止,我想出了这个:

我需要将其作为字符串返回,但格式为:dd/mm/yyyy = 29/04/1991。

我怎样才能做到这一点?

0 投票
1 回答
1683 浏览

java-8 - java 8数据时间解析错误

我正在尝试将字符串转换为LocalDate对象。但我收到以下错误。

这是错误

0 投票
1 回答
19200 浏览

java - DateTimeParseException:无法解析文本:无法从 TemporalAccessor 获取 LocalDateTime

它打印错误:

Accoeding 消息看起来所有值都解析正确,但无论如何我看到错误。

如何让它工作?

0 投票
1 回答
2800 浏览

java - 将信用卡日期 MM/yy 格式化为 MM/dd/yyyy

我有可以采用 2 种不同类型的日期格式的方法:

  • MM/YY(信用卡到期日)
  • yyyyMMdd(资金到期日)

Credit card到期日被视为在该月的最后一天到期。因此,如果抄送日期是 2017 年 5 月 (05/17),则此抄送在 5 月 31 日被视为过期。

资金到期日期将在它说到期的那一天到期。因此,如果我在同一天查看它,它应该返回 TRUE,因为资金已过期。

这是我的代码:

有谁知道这样做的更好方法?

我还注意到LocalDate不考虑Leap Year,所以 2015 年 2 月有 29 天,就像 2016 年 2 月一样,所以我daysInMonth的数字不是一个好数字。

对于 yy 年和 5 月的第 5 个月,看起来 Date 比 LocalDate 更宽容。

0 投票
3 回答
5560 浏览

java - java.time.DateTimeException:无效日期 'February 29' 因为 '2017' 不是闰年 Java

我试图在 Java 中获取开始和结束日期,我有从 1 月到 12 月的月份列表JCombobox和显示年份 JCombobox的年份。

首先,我已将月数转换String为月数并使用此代码:

然后后来我创建了一个字符串dateString来获取所选月份的第一个和最后一个日期LocalDate,一切正常,但是当我选择 2017 年 2 月和 2017 年时,它给了我例外java.time.DateTimeException: Invalid date 'February 29' as '2017' is not a leap year

获取第一个和最后一个日期的代码是

我不知道做错了什么请有人帮助我

0 投票
1 回答
6329 浏览

java - 找出两个 Long epoch 值表示的两个日期之间的差异

我的需要是我有一个 Long 值,它代表自纪元以来的毫秒值。我想找出当天和当天之间的天数差异。我正在使用 Java8DAYS.between(inputDate, currentDate)

对于我使用的 currentDateLocalDateTime currentDate = LocalDateTime.now(); 但我面临的问题是当我将 long 值转换为 java8 LocalDateTime 时。当我使用

结果是1970-01-18当我在https://www.epochconverter.com/中输入相同的值时,它给出Fri, 24 Mar 2017 16:22:08 GMT

为什么会有这种差异?如何有效地从长值中获取 java8 日期以在 DAYS.between() 中使用?

0 投票
2 回答
6800 浏览

java - java.time.DateTimeException:Year 的值无效(有效值 -999999999 - 999999999)

当我尝试将 epochTime 转换为 LocalDate 时出现此异常,其中:

1) 日期:2017-05-05 10:08:52.0

2)对应纪元:1493959132000

例外 :

我了解 java.time.LocalDate 的源代码在https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#ofEpochDay-long-给出了此异常的事先警告

这实际上意味着什么,什么时候到来?

0 投票
0 回答
795 浏览

java - Hibernate 5.2.10 Final 和 MySQL 5.7 中的 LocalDate 问题

我在我的项目中使用 Java8、Hibernate 5.2.10Final 和 MySQL 5.7。但是我在使用时遇到了一些问题java.time.LocalDate。有两个实体类:

TradeDay.class:

和 Transaction.class

然后我遇到的问题:

1.当我LocalDate在HQL中用作key时,SQL中的最终值将是上一个日期。例如:

ps:t.date等于transaction.getTradeDay().getDate()

我使用此代码在数据库中搜索。但是,当我给出一个参数时2010-12-18,结果的日期都是2010-12-17.

2.我@LazyCollection(LazyCollectionOption.EXTRA)用来确保当我调用方法transactionSet.size()休眠时只会执行一个“计数”SQL。它确实有效,但是当我迭代它时,集合中什么都没有。

测试代码:

输出如下:

我该如何解决这些问题?谢谢你的帮助。