问题标签 [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.
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 控制台中运行查询时,我不明白为什么这与结果不匹配,看来它们对我来说应该是一样的。
java - 如何使用可移植的 DateTimeFormatter 格式化 java.util.Date?
如何java.util.Date
用DateTimeFormatter
便携式格式化?
我无法使用
因为我担心使用 ofZoneId.systemDefault()
会带来一些变化。
我需要完全格式化我拥有的那个对象。
更新
注意:时间就是时间。不是空间。时区是非常粗略的经度度量,即空间。我不需要它。只有时间(和日期)。
更新 2
我编写了以下程序,证明它Date
不仅包含正确的“即时”:
输出如下:
虽然它应该是
如果Date
是“即时”。
数字10799000
是3*60*60*1000-1000
- 我当地时间的时区偏移量。
这意味着,Date
该类是双重的。它的毫秒部分可能会相对于hh mm ss
部分偏移时区偏移。
这意味着,如果任何实用程序Date
根据其部件 () 返回对象,hh mm ss
则它会隐式转换为本地时间。并且getTime()
同时意味着不同的时间。我的意思是在不同的机器上,如果这个程序同时运行,getTime()
将是相同的,而时间部分将是不同的。
因此,开头的代码示例是正确的:它采用 的“即时”部分Date
,并提供系统时区部分,该部分在Date
. 即它将对偶Date
对象转换为LocalDateTime
具有相同部分的显式对象。因此,之后的格式是正确的。
更新 3
活动更有趣:
这个测试失败了。
UDPATE 4
新代码。献给所有信徒。
输出:
java - Java LocalDate 格式化
寻找有关 LocalDate 的帮助,到目前为止,我想出了这个:
我需要将其作为字符串返回,但格式为:dd/mm/yyyy = 29/04/1991。
我怎样才能做到这一点?
java-8 - java 8数据时间解析错误
我正在尝试将字符串转换为LocalDate
对象。但我收到以下错误。
这是错误
java - DateTimeParseException:无法解析文本:无法从 TemporalAccessor 获取 LocalDateTime
它打印错误:
Accoeding 消息看起来所有值都解析正确,但无论如何我看到错误。
如何让它工作?
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 更宽容。
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
获取第一个和最后一个日期的代码是
我不知道做错了什么请有人帮助我
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() 中使用?
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-给出了此异常的事先警告
这实际上意味着什么,什么时候到来?
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。它确实有效,但是当我迭代它时,集合中什么都没有。
测试代码:
输出如下:
我该如何解决这些问题?谢谢你的帮助。