問題タブ [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 - ZonedDateTime を文字列に変換する
現在の時刻を文字列としてデータベースに保存する必要があります。時間は異なるタイムゾーンにある可能性があるため、Java SE 8 の新しい ZonedDateTime クラスの使用を検討しています。
toString() メソッドが自動的に出力することに気付きました:
これも ZonedDateTime.parse() で読み取れるようで、正しい値に変換されます。
これらの値を保存するだけで、値をユーザーが読み取り可能な形式に変換する必要がない場合、適切なタイムゾーンでデータを正確に保存するために必要なことはこれだけですか? たとえば、toString() 表現を格納することによって 2 つの ZonedDateTimes を SQL データベースに挿入し、後で ZonedDateTime.parse() を使用してこれらの時刻を読み取った場合、isAfter() や isBefore() などは正常に動作すると期待できますか?大丈夫?
または、その間のステップがありませんか?Java 7 でタイムゾーンを理解しようとした後、これはほとんど簡単すぎるように感じます。
java - Jackson アノテーション 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) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.(RequestMappingHandlerAdapter.java:187) at sun.reflect. NativeConstructorAccessorImpl.newInstance0(Native Method) の sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) の sun.reflect.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. 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
私は自分のクラスで使用していません。しかし、UTC で Json との間でシリアル化および逆シリアル化するために 2 つのクラスを使用する注釈がJsonSerializer
あります。このシリアライゼーションとデシリアライゼーションを初めて行うので、提案をお願いします。JsonDeserializer
ZonedDateTime
これが私のgradleファイルコードです:
java - java.time の ZonedDateTime に時刻を設定しますか?
ZonedDateTime
既存のオブジェクトの時刻部分を変更するにはどうすればよいですか? 日付とタイムゾーンは保持したいが、時間と分を変更したい。
java - ZonedDateTime は正常に解析されますが、出力文字列が異なります
を使用しZonedDateTime
て、タイムゾーンに従って現在の時刻を解析および取得しています。
次を解析するString
と、解析は成功しますが、出力String
が異なります。何故ですか?
出力
どの時点で変更+1
が決定され+2
、例外がスローされなかったのはなぜですか?
括弧内のパラメーターはオプションであることは理解しています[Europe/Paris]
が、ここではオフセットよりも優先されます。
一方、次のコード
出力を生成する
java - Instant、ZonedDateTime、および UTC について混乱している
UTC の概念と Java 8 の新しい 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でJacksonがこのように振る舞うのはなぜですか?
** アップデート **
これを解決するための完全なステップバイステップガイドを探している人のために、質問をした後にこれを見つけました: http://lewandowski.io/2016/02/formatting-java-time-with-spring-boot-using-json/
java - Morphia を介した MongoDB の ZonedDateTime
手短に:
java.time.ZonedDateTime
args コンストラクターがありません (実際には、
コンストラクターがまったくありません)- これを克服するには
ZonedDateTimeConverter
、モルフィア用に - コンバーターなしで保存してロードしようとすると、すべてのフィールドを読み取ってそこから ZonedDateTime オブジェクトを開始できるため
ZonedDateTime
、Morphia は完全なZonedDateTime
オブジェクトを保存しますが、ロード時に例外が発生しました。DBObject
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 に変換しようとしています。これは私が使用しているコードです
ただし、次のエラーが発生します-
この変換を行う方法はありますか?