0

Mircrosoft のこの C# コードによると、次のような標準の日付形式があります。

//       R: Sun, 15 Jun 2008 21:15:07 GMT 

私のC#コードは次のように「r」を使用します:

webRequest.Date.ToUniversalTime().ToString("r")

Javaでこのような標準の日付形式を作成するにはどうすればよいですか?

私はこれまでのところこれを持っています:

this.timestamp = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z").format(new Date());

しかし、それに合うものを書いてみるべきなのか、それとももっと良い方法があるのか​​ わかりません。私が恐れているのは、私が間違いを犯し、特定の日付がうまくいかないことです.

4

1 に答える 1

4

Javaでこのような標準の日付形式を作成するにはどうすればよいですか?

フォーマットのドキュメントをr見てください:

カスタム形式の文字列は「ddd, dd MMM yyyy HH':'mm':'ss 'GMT'」です。この標準の書式指定子を使用すると、書式設定または解析操作で常にインバリアント カルチャが使用されます。

[...] したがって、アプリケーションは、フォーマット操作を実行する前に、日付と時刻の値を UTC に変換する必要があります。

したがって、そのカスタム フォーマット文字列を , * に変換しSimpleDateFormat、タイム ゾーン (UTC) とロケールを指定していることを確認します (米国英語はインバリアント カルチャに十分近いです)。

DateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'",
                                         Locale.US);
format.setTimeZone(TimeZone.getTimeZone("UTC"));
String text = format.format(date);

それは、.NET の形式から形式を一致させたい場合ですr。個人的には、代わりに ISO-8601 形式を使用します。

DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
                                         Locale.US);
format.setTimeZone(TimeZone.getTimeZone("UTC"));
于 2013-09-25T19:34:32.357 に答える