問題タブ [java-time]

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.

0 投票する
1 に答える
1480 参照

java - Java GMT 表示

ここで解決しなければならない問題がありますが、方法がわかりません。

私はこれをしなければなりません:

ShowCurrentTime.java、現在の時刻を GMT で表示するプログラムを提供します。プログラムを修正して、タイム ゾーン オフセットを GMT に入力するようユーザーに促し、指定されたタイム ゾーンの時刻を表示するようにします。

実行例は次のとおりです。

これまでのところ、デフォルトの GMT 時刻を実行しましたが、その方法がまったくわかりません..

0 投票する
3 に答える
19449 参照

java - java.time は秒単位の解析に失敗していますか?

Mac OS X (Mavericks) での Java 8 (b132) の最初のリリースでは、新しいjava.time パッケージを使用した次のコードが機能します。

レンダリング:

しかし、 DateTimeFormatter クラス docで指定されているように、秒の小数部に「SS」(および入力として「55」) を追加すると、例外がスローされます。

ドキュメントには、デフォルトで厳密モードが使用され、入力数字と同じ数のフォーマット文字が必要であると書かれています。したがって、このコードが失敗する理由がわかりません。


ドキュメント ("978") の例を使用した別の例 (失敗):


この例では、小数点を追加して動作します (ただし、ドキュメントにはそのような要件はありません)。

レンダリング:


入力文字列またはフォーマットからピリオド文字を省略すると、エラーが発生します。

失敗:

失敗:

0 投票する
1 に答える
5597 参照

java - UTC 時間を他のタイム ゾーン ("CST"、"IST") に変換する方法

私の Android アプリケーション サーバーではUTC、次の format( yyyy-MM-dd HH:mm:ss) 24hours で日付が返され、それらの時間をユーザーの TimeZone に変換する必要がありCSTますIST

次のコードを実行しましたが、それが正しいかどうかはわかりません。正しい方法でタイムゾーンを変換するのを手伝ってください。

UTC日付をjson文字列として取得し、ユーザーのタイムゾーン形式に変換してAndroid側を表示します

0 投票する
3 に答える
553 参照

java - java.time ::toString(String pattern) メソッドがありません

次のコードを検討してください。

joda-time クラス ( DateTimeLocalDateなど) にはtoString、必要な形式の文字列を受け入れるメソッドが含まれていました。これは非常に便利な方法でした。しかし、Java-8 の実装ではこのメソッドが省略されています。代わりに、 を呼び出す必要がありますformat(DateTimeFormatter formatter)

確かに、小さな不満。しかし、私の質問は次のとおりです。これが java.time から省略された理由はありますか? アプリケーションを joda-time から java.time に変換することは、このわずかな欠落のために非常に難しくなります。でも、合理的な理由があれば納得です。あなたが私の懸念を和らげるためにここにいるわけではありませんが、念のため聞いてみようと思いました.

編集:投票に近い人にとって、これは意見に基づく質問ではありません。joda-time/java.time の内部構造と、特定の方法で開発する動機をよく知っている人なら誰でも、たとえ実際にそうでなくても、質問に答える資格があります。

0 投票する
1 に答える
2937 参照

java - JSR-310 で 2 つの異なる週ベースの年定義を使用する動機は何ですか?

これらは、パッケージ内の 2 つのフィールドjava.time.temporalです。

IsoFields.WEEK_BASED_YEAR

WeekFields.ISO.weekBasedYear()

ISO-8601 では、他の 2 種類の日付、つまり通常の暦日 (年、月、日で構成される) と序数の日付 (年と日で構成される) に加えて、いわゆる週の日付を定義しています。 )。曜日は YYYY-'W'ww-e の形式で定義されます。w は年の週を表し、e は数値の ISO 曜日を表します。Y は週ベースの年を表し、週ベースの年は最終的に前の年に開始できる週サイクルにバインドされるため、暦年の開始時または終了時を除き、暦年と同じです。週の日付がどのように形成されるかを理解するには、次の 2 つの規則が重要です。

  1. 週は常に月曜日から始まります。
  2. 暦年の最初の週は、少なくとも 4 日を含む週です。

ISO-8601 では 1 種類の週ベースの年しか言及されていないため、一見すると、両方の JSR-310 フィールドは同じように見えます。しかし、待って、驚いてください。次のコード例を考えてみましょう。

私は2番目のバリエーションをよく理解していますが、クラス名に「公式の」ISO-8601参照を使用している最初の日付の結果が異なることに本当に驚いています。計算結果を説明するには:

日付 2000-02-29 は ISO-weekdate-notation の 2000-W09-2 に対応し、2014-02-25 は 2014-W09-2 に対応し、週と曜日を保持します。ここまでは順調。小さいフィールドの特性を保持するこのルールは、暦年を変更する方法と似ています (ほとんどの場合、暦日の月と日は変更されません)。

しかし、2014-03-01 の結果はどうでしょうか? ここでは、「月の日」フィールドの違い (29 対 25) を考慮に入れるために、アルゴリズムは対応する週の日付に 4 日を単純に追加しています。この動作に関するソースや公式ドキュメントは見つかりませんでした。これら 2 つの分野の違いの正当な理由がどこにあるのか知っている人はいますか? アルゴリズムの動作に関するドキュメントはありますか?

アップデート:

ここで、2 つのフィールドのどちらがより適切にサポートされているかを調べるために、次の式を使用して新しい API の一貫性をテストしようとしました。

出力は 2014-03-01 で説明されている のケースと同様ですがIsoFields.WEEK_BASED_YEAR、結果 2014-02-25 (=2014-W09-2) の方がはるかに論理的です。これまでのところ、この一時的な単位はクラスにもあるIsoFieldsため、動作はクラス内で一貫していますIsoFields。文書化されておらず、直感的でない「機能」のように見えます。

私はバージョンを使用しています: java.runtime.version=1.8.0-b132

その他のテスト:

出力:

明確なルールは認識していません。14 週ベースの年を追加する間、曜日も月の日も保持されません。これは追加の質問です: 背後にあるルールは何IsoFields.WEEK_BASED_YEARSですか? JSR-310 チームが私たちを啓発してくれるのではないでしょうか?

0 投票する
6 に答える
148396 参照

java - LocalDate と LocalDateTime からエポックを抽出するには?

Longまたはのインスタンスからエポック値を抽出するにはどうすればよいですLocalDateTimeLocalDate? 次のことを試しましたが、他の結果が得られます。

私が欲しいのは、単純に1391539861ローカルの datetime の値です"04.02.2014 19:51:01"。私のタイムゾーンはEurope/Oslo夏時間の UTC+1 です。