问题标签 [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 - 从 ZoneDateTime 转换 Date 给出当地时间而不是 ZonedTime
我正在尝试将 ZonedDateTime 转换为日期。看起来在转换中,它失去了时区并获得了我的当地时间。
以上输出如下:
这是因为这是 Date 类型吗?我将如何进行这种转换并节省分区时间?
java - 将 ZonedDateTime 转换为字符串
我需要将当前时间作为字符串存储在数据库中。时间可以在不同的时区,所以我正在考虑使用 Java SE 8 的新 ZonedDateTime 类。
我注意到 toString() 方法会自动输出:
这似乎也可以被 ZonedDateTime.parse() 读取并转换为正确的值。
如果我所做的只是存储这些值并且我不需要将值转换为用户可读的格式,那么我需要做的就是准确地存储具有适当时区的数据吗?例如,如果我通过存储它们的 toString() 表示将两个 ZonedDateTimes 插入到 SQL 数据库中,然后我使用 ZonedDateTime.parse() 读取这些时间,我是否可以期望 isAfter() 和 isBefore() 之类的东西正常工作美好的?
还是我错过了两者之间的一步?在试图找出 Java 7 中的时区之后,这感觉太容易了。
java - 杰克逊注解 JsonFormat$Value json java.lang.NoSuchMethodError
我com.fasterxml.jackson.core:jackson-annotations:2.6.0
在我的 gradle 项目中使用。自从添加com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.6.0
到我的项目构建文件以来,我在运行我的 gradle 项目时遇到了这个异常。这是我的错误的堆栈跟踪。
引起:org.springframework.beans.BeanInstantiationException:无法实例化[org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter]:构造函数抛出异常;嵌套异常是 java.lang.NoSuchMethodError: com.fasterxml.jackson.annotation.JsonFormat$Value.empty()Lcom/fasterxml/jackson/annotation/JsonFormat$Value; 在 org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:163) 在 org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory .instantiateBean(AbstractAutowireCapableBeanFactory.java:1098) ... 117 更多原因:java.lang.NoSuchMethodError:com.fasterxml.jackson.annotation.JsonFormat$Value。empty()Lcom/fasterxml/jackson/annotation/JsonFormat$Value; 在 com.fasterxml.jackson.databind.cfg.MapperConfig.(MapperConfig.java:50) 在 com.fasterxml.jackson.databind.ObjectMapper.(ObjectMapper.java:535) 在 com.fasterxml.jackson.databind.ObjectMapper.( ObjectMapper.java:452) 在 org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:553) 在 org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.(MappingJackson2HttpMessageConverter.java:57) 在 org. springframework.http.converter.support.AllEncompassingFormHttpMessageConverter.(AllEncompassingFormHttpMessageConverter.java:61) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.(RequestMappingHandlerAdapter.java:187) 在 sun.reflect。NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor. java:422) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147) ... 119 更多嵌套在 org.springframework.beans.factory.BeanCreationException:创建名为 'org.springframework.web 的 bean 时出错。 servlet.mvc.method.annotation.RequestMappingHandlerAdapter':bean 的实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter]:构造函数抛出异常;嵌套异常是 java.lang.NoSuchMethodError: com.fasterxml.jackson.annotation.JsonFormat$Value.empty()Lcom/fasterxml/jackson/annotation/JsonFormat$Value;: java.lang.NoSuchMethodError: com.fasterxml.jackson.annotation .JsonFormat$Value.empty()Lcom/fasterxml/jackson/annotation/JsonFormat$Value; 在 com.fasterxml.jackson.databind.cfg.MapperConfig.(MapperConfig.java:50) 在 com.fasterxml.jackson.databind.ObjectMapper.(ObjectMapper.java:535) 在 com.fasterxml.jackson.databind.ObjectMapper.( ObjectMapper.java:452) 在 org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:553) 在 org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.(MappingJackson2HttpMessageConverter.java:57) 在 org. springframework.http。
@JsonFormat
我在我的课上没用过。但我确实有JsonSerializer
和JsonDeserializer
注释使用两个类来序列化和反序列化我ZonedDateTime
在 UTC 中的 Json 和 Json。我是第一次做这个序列化和反序列化,所以请提出任何建议。
这是我的gradle文件代码:
java - 在 java.time 中的 ZonedDateTime 上设置时间?
如何更改现有ZonedDateTime
对象的时间部分?我想保留日期和时区,但更改小时和分钟。
java - ZonedDateTime 解析成功但输出字符串不同
我正在使用ZonedDateTime
根据时区解析和获取当前时间。
当我解析以下内容String
时,解析成功但输出String
不同。这是为什么?
输出
它在什么时候决定更改+1
为+2
,为什么没有抛出异常?
我知道括号中的参数[Europe/Paris]
是可选的,但在这里它优先于偏移量。
另一方面,以下代码
产生输出
java - 对 Instant、ZonedDateTime 和 UTC 感到困惑
我试图从 Java 8 中理解 UTC 和新 TimeApi 的概念。
打印以下输出:
为什么区域偏移量Case1
是 +02:00
小时,以Case2
+01:00
小时为单位?
java - Jackson 在 Spring Boot 中错误地序列化了 ZonedDateTime
我有一个带有 Spring Boot 和 Jetty 的简单应用程序。我有一个简单的控制器返回一个具有 Java 8 的对象ZonedDateTime
:
在我的RestController
我只是有:
我期待ZonedDateTime
根据 ISO 格式格式化,但我得到了类的整个 JSON 转储,如下所示:
我只有一个spring-boot-starter-web
应用程序,使用spring-boot-starter-jetty
和排除spring-boot-starter-tomcat
.
为什么杰克逊在 Spring Boot 中表现得这样?
** 更新 **
对于那些寻找完整的分步指南如何解决这个问题的人,我在提出问题后发现了这一点:http: //lewandowski.io/2016/02/formatting-java-time-with-spring-boot-using-json/
java - 通过 Morphia 在 MongoDB 中的 ZonedDateTime
简而言之:
java.time.ZonedDateTime
没有 args 构造函数(实际上它根本没有
构造函数)- 为了克服这个问题,我应该
ZonedDateTimeConverter
为 Morphia写一个 - 如果我尝试保存和加载我的
ZonedDateTime
无转换器,Morphia 会将完整ZonedDateTime
对象保存为DBObject
这很酷,因为我可以读取所有字段并从中启动 ZonedDateTime 对象,但加载时出现异常:No usable constructor for java.time.ZonedDateTime
- 如果我尝试
ZonedDateTime
使用转换器保存和加载,我会遇到另一个异常:Can't find a codec for class java.time.LocalDateTime
. 根据这篇文章,我开始使用转换器,但没有任何结果。 - 因此,如果我没有转换器,我可以保存但无法加载,如果我有转换器,我什至无法保存,因为缺少编解码器。
任何想法?
更新:
原来我应该为从ZonedDateTime
(例如LocalDateTime
,, )开始的每个子类型编写一个转换器LocalDate
,LocalTime
但结果我应该为java.time.ZoneRegion
它编写一个包私有的转换器。
mysql - 如何从 java.sql.Date 转换为 ZonedDateTime
我正在尝试从 java.sql.Date 转换为 ZonedDateTime。这是我正在使用的代码
但是,它会导致以下错误 -
有没有办法进行这种转换?
java - 如何在 Java 中使用方括号作为分隔符来解析字符串?
我有一个解析 ZonedDateTime 对象的类,.split()
用于删除我不想要的所有额外信息。
我的问题:有没有办法使用方括号作为我缺少的分隔符,或者如何在不使用方括号作为分隔符的情况下自行获取时区([US/Mountain])?
我希望字符串时区看起来像“US/Mountian”或“[US/Mountian]
我尝试过的:
我尝试过wholeThing.split("[[-T:.]]?)
,wholeThing.split("[%[-T:.%]]")
但那些都给了我00[US/Mountain]
我也尝试过wholeThing.split("[\\[-T:.\\]])
,wholeThing.split("[\[-T:.\]")
但那些只是给我错误。
(部分)我的代码: