问题标签 [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.
date - 获取午夜和当前时间JDK 8之间的时间范围
我有这种方法来计算 midnigt 和当前时间作为 long 值:
也许有更简单的方法可以做到这一点?
date - 获取本周第一天和当前时间JDK 8之间的时间范围
我可以轻松计算每月第一天和当前时间之间的时间段:
但是如何在本周的第一天(午夜)开始计数?
java - DynamicReports 不应用模式来格式化 ZonedDateTime
我有一个模型类,其中包含ZonedDateTime类型的字段。生成报表数据时显示为:
2017-08-17T16:09:03+03:00[欧洲/基希讷乌]
要格式化该日期,我使用方法setPattern("dd.MM.yyyy")
但没有任何变化。
所有东西都是通过反射生成的,检查源:
生成报告,其中列表是元素的通用列表。
生成的 PDF
spring-mvc - Spring Boot 将表单数据解析为 ZonedDateTime (dd/MM/yyyy HH:mm)
我有一个拥有java.time.ZonedDateTime
财产的实体。我想将dd/MM/yyyy HH:mm
格式从表单提交的字符串解析为java.time.ZonedDateTime
.
我试过了@DateTimeFormat(pattern = "dd/MM/yyyy HH:mm")
。但它只适用LocalDate
于@DateTimeFormat(pattern = "dd/MM/yyyy")
格式。
我还创建了一个Converter
如下
并覆盖 webMvcConfiguration 如下
我不确定使它起作用的正确方法是什么。使用 Spring Boot 1.5.6。百里香叶 3.0.7
mysql - jhipster 和 ZonedDateTime
当我坚持一个 ZonedDateTime 时,区域信息就被释放了。
日志的输出:
在 MySql Workbemnch 中:
,在Workbench中可以看到刚刚发布的区域信息。我发现该应用程序何时在 heroku 上投入生产,服务器与用户位于另一个时区。一些发现者返回错误的结果。
这里来自 ledger.json:
难道我做错了什么 ?
java - Java 8 Time API - ZonedDateTime - 解析时指定默认 ZoneId
我正在尝试编写一个通用方法来返回ZonedDateTime
给定的日期String
及其格式。
如果 date 中未指定ZonedDateTime
默认值,我们如何使用它?ZoneId
String
可以用 来完成java.util.Calendar
,但我想使用 Java 8 time API。
这里的这个问题使用的是固定时区。我将格式指定为参数。日期及其格式都是String
参数。更通用。
下面的代码和输出:
输出
java - 如何在 JSON 序列化期间将服务器时区添加到 localdatetime?
我将 LocalDateTime 用于 RESTful Web 服务中的所有时间戳,并且所有时间戳的初始化和更改都在服务器上进行。
当服务的客户端创建一些资源时,服务器会在内部为该资源分配创建时间戳。
服务器以 JSON 格式返回资源:
当客户端呈现creationTimestamp
时,它不知道创建此时间戳的服务器时区,并错误地呈现时间。
我看到解决它的唯一方法:将应用程序中的所有时间戳更改为 ZonedDateTime 并将它们与 JSON 中的时区一起返回给客户端。但是这种方法非常昂贵。
有没有其他方法可以解决这个问题?
json - ZonedDateTime 自定义 JSON 转换器 Grails 3.3.0
我正在将一个非常旧的 Grails 应用程序转换为最新版本 (3.3.0)。事情有点令人沮丧,但我已经非常接近迁移除了 JSON 和 XML 编组器之外的所有内容,它们之前在我的 BootStrap init 中注册。
之前的 marshaller 注册看起来像这样:
这是这样定义的:
在迁移过程中,我最终将 org.joda.time.DateTime 的所有实例转换为 java.time.ZonedDateTime:
不幸的是,在升级到 Grails 3.3.0 之后,无论我尝试做什么,这个 marshaller 注册似乎都没有被使用。
我确实知道有一种新的“JSON 视图”做事方式,但是这个特定的服务有很多端点,如果一切都已经完成,我不想为所有端点编写自定义转换器和“.gson”模板以我需要的格式。我只需要 JSON 格式的响应和行为属性的日期(格式化字符串)。
相反,我发现(与以前的行为相比,使用 ZonedDateTime 的属性在我的 JSON 输出中“爆炸”了。有大量不需要的垃圾日期对象信息,并且它没有被格式化为正如我所料,一个简单的字符串。
我已经尝试了一些东西(主要是根据官方最新 Grails 文档中的建议)---
在 application.yml 中为 grails 视图添加配置:
在“src”下创建此路径:
src/main/resources/META-INF/services/grails.plugin.json.builder.JsonGenerator$Converter
并将转换器添加到我在上面文件中命名的域类中^:
在我的控制器中,我改变了:
return multibeamCatalogService.findFiles(cmd, params)
为此(为了像以前一样在浏览器中获取 JSON 输出):
respond multibeamCatalogService.findFiles(cmd, params), formats: ['json', 'xml']
不幸的是,我能想到的上述大多数排列都导致了诸如“无法解析视图”之类的错误。否则,当我收到回复时,主要问题是日期未格式化为字符串。此功能以前由 Marshaller 执行。
我越来越沮丧。有人能告诉我如何在我的 JSON 输出中将 ZonedDateTime 格式化为一个简单的字符串(例如 - “2009-06-21T00:00:00Z”),而不是像这样的巨型对象吗?简单地转换为 java.util.Date 会导致“无法解析视图”错误再次出现;因此,这期望我制作一个“.gson”视图,该视图永远不会显示我期望的格式或为空。
date - java 8 从 zonedLocalTime 获取 timeZone
我正在编写一个辅助方法,它接受日期的字符串表示并返回 TimeZone
例如:
(这里的输入是 PST。我使用的是 -7:00 的 UTC 偏移量)
当我通过上述日期时,我得到Africa/Abidjan
的是完全不正确的。
我更喜欢“America/Los_Angeles”,但至少是正确的。从某种意义上说,我在这里得到的完全错误,在阿比让和洛杉矶的时间非常不同。
到达这里的正确方法是什么?
java - 为什么 Jackson 的默认解串器将 Zone 设置为 UTC 而不是 Z?
我想我一定是误解了 Zones 在 java 的 ZonedDateTime 类中是如何工作的。当我使用 Jackson 序列化然后反序列化 now() 时,反序列化的值具有 getZone() == "UTC" 而不是序列化值中的 "Z"。谁能向我解释为什么会这样以及我应该做什么?
下面的代码打印:
java源码: