问题标签 [zoneddatetime]
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 - 使用休眠从 hsqldb 读取 ZonedDateTime 会丢失 TimeZoneInfo
我正在使用 ZonedDateTime 来跟踪系统中发生的事件。例如
为了运行一些测试,我在内存数据库中使用了 hsqldb。我通过在配置 .properties 文件中指定它来运行 sql 脚本来填充它
在该文件中,我插入一条记录为
它执行没有任何问题。
后来,当我从运行@NamedQuery 的数据库中获取这条记录时,我总是得到一个本地时区的值。发生读取的日志部分是:
所以:我用 TimeZone +01:00 插入它,Hibernate 堆栈在本地 TimeZone -08:00 中读回它。
有没有办法用正确的区域实际读取整个时间戳?
相同的代码在 Postgres 的生产环境中运行,并且时间戳在那里按预期运行(即我可以编写和读取 ZonedDateTime 并且区域信息不会丢失)。
编辑:@fredt Postgress 也返回 Timestamp,但“尊重”脚本中指定的时区。
例子:
和日志输出:
在 INSERT 语句中使用了 UTC+01(欧洲时间),休眠/驱动程序将其转换为本地时间(UTC-08)。只要我得到正确的时间点,这对我来说很好,因为在内部,完整的应用程序知道时区等。
java - 使用 ZonedDateTime 和 Calendar API 计算一年中的一周问题
我试图从 ISO-8601 日期格式字符串输入计算一年中的一周。最初我用 java.time.ZonedDateTime 尝试了这个,但它给出了输入日期的错误结果 - 2049 年 1 月 2 日。然后我尝试使用日历 API,它也对 2049 年 12 月 31 日给出了不正确的响应。
我附上了示例测试代码
上面代码的输出
java - 将 Java ZonedDateTime 转换为不同的格式 ZonedDateTime
我有一个ZonedDateTime
以下格式的java对象
我希望它也以以下格式显示为ZonedDateTime
对象
我怎样才能做到这一点?
java - ZonedDateTime 对 SQL 数据库的持久性
美好的一天,
我创建了将在全球范围内使用的 Web 应用程序服务。
因此,我需要以 UTC 格式存储日期时间值,并将它们以挂钟时间的时钟表示给最终用户。
阅读堆栈溢出后,我明白,我应该:
- 使用时间戳作为 DB 中的列类型(当前为 MariaDB 10.1.20)
- 在 Java 中使用 ZonedDateTime(我使用 java8)
在这些值之间进行转换时出现了问题。
当我使用 JDBC 时,我必须进行以下转换:
我的代码:
当我使用:
它返回我错误(我需要在我的域模型的覆盖相等方法中比较它们)
下面是两者的打印:
zonedDateTimeBeforeSave: 2017-01-24T20:18:17.720Z
zonedDateTimeAfterSave: 2017-01-24T20:18:17Z
问题:
- 我的选择是否正确。也许,我应该使用另一列或 java 类型...
- 我做转换是否正确。也许还有另一种更好的方法
谢谢
- 编辑:在马特约翰逊的帮助下,我明白问题出在事实上,当我将日期时间保存到数据库时,它不会保存分数,尽管它应该。仅供参考,列类型是时间戳(6)。
- 编辑:现在我使用 java.time.Instant 而不是 ZonedDateTime
java - java.time.ZonedDateTime 不支持 Drools Fusion 转换为 long
我试图在之前、之后和同时使用 Drools Fusion 时间运算符,但我不断收到错误消息:
不支持从 java.time.ZonedDateTime 转换为 long
在我的对象中,我比较的时间是 ZonedDateTime。Drools 是否要求时间变量是特定类型?转换为长的错误是什么意思?
我曾尝试使用 .isBefore() 和 .isAfter() 但似乎 Drools 无法识别这些功能。
java - 使用 LocalDateTIme 和 ZonedDateTime 从日期中减去一天后得到错误的结果
我正在测试"2016-03-28T02:00:00+0200"
(1459123200 in UTC Sec.)
减去 1 天后,应用 DST,输出应为:
“2016-03-27T03:00:00+0200”
但我得到了这个:
2016-03-26T01:00+01:00[欧洲/斯德哥尔摩]
代码:
请检查并指出我哪里出错了。
java - 如何将 ZonedDateTime 格式化为字符串?
我想将 a 转换ZonedDateTime
为 aString
的格式("dd/MM/yyyy - hh:mm")
。我知道这在 Joda-Time 其他类型中是可能的,只需使用它们toString("dd/MM/yyyy - hh:mm")
......但这不适用于ZonedDateTime.toString()
.
如何将 a 格式化ZonedDateTime
为 a String
?
编辑:
我试图在另一个时区打印时间,结果似乎总是一样的:
而且我和洛杉矶不在同一个时区。
编辑2:
找到如何更改时区:
jhipster - 为什么 JHipster 页面不接受 ZonedDateTime 的字符串
我最近将我的域对象从 LocalDate 更改为 ZonedDateTime。我还创建了一个全新的游戏 JHipster 应用程序和一个为两个班级成员选择 ZonedDateTime 的游戏实体。测试应用程序(新)可以正常工作,而我现有的应用程序却不能,即使在完成所有代码两次之后也是如此。我使用 Liquibase 加载了 CSV 数据,我的列表代码正确显示了日期。这是我的 Maven 输出中的数据,例如 entrydate='2017-02-23T19:53:18-05:00[America/New_York]', transaction='Initial Balance',
当我选择在 dialog.html 中使用“datetime-picker”更新日期时间值时,文本框中会显示一个字符串日期时间,但是当我按下“保存”时,会出现“内部服务器错误”,并且Maven 输出显示:
.HttpMessageNotReadableException:无法读取文档:无法在索引 23 处解析文本“2017-02-26T00:53:18.000Z”(通过参考链:org.ciwise.blackhole.domain.GenLedger[“entrydate”]);嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException: Text '2017-02-26T00:53:18.000Z' could not be parsed at index 23 (通过参考链:org.ciwise.blackhole.domain.GenLedger["entrydate "])]
有谁知道为什么选择器会在文本框中产生当 HTTP PUT 发生(编辑)时不可接受的字符串文本?
我的应用程序确实使用服务类,但它们处理与 JPA 存储库类相同的 Java 域对象。
还有一件事,API 的架构显示例如“entrydate”:“2017-02-23T21:44:04.859Z”,但实际的 JSON 返回是“entrydate”:“2017-02-23T19:53:18.000-0500 ",
我希望其他人以前遇到过这种情况。
谢谢
大卫
java - 在 ZonedDateTime 或 Instant 中将小时分钟和秒设置为 00
我有一个 Utc 格式的日期字符串 -
我想在ZonedDateTime 中将其转换为 Java 日期表示中的以下格式。
打印ZonedDateTime时,应显示
我试过以下代码 -
输出:
我希望在 ZonedDateTime 中标准化开始时间。我只想使用 java 库而不是任何第三方库来实现它。
java - ZonedDateTime 格式以显示当前时间,其中已包含偏移量
我一直在寻找这个答案,但我可能会误认为如何实现这一点。我有一个 ZonedDateTime 变量,目前如果我要打印它,它将打印例如 2017-12-03T10:15:30+01:00。有没有办法打印已经添加或减去偏移量的时间?例如,我想看看上面 16:30 的例子。谢谢您的帮助!