他の回答は、2012年に罰金の答えだった。ここ最近の(2014)は、Javaの日付と時間のクラスで行う方法の例です:
System.out.println("date de la requete est " + dateq);
DateTimeFormatter dtf = DateTimeFormatter
.ofPattern("EEE MMM dd HH:mm:ss xx uuuu", Locale.ROOT);
OffsetDateTime dateTime1 = OffsetDateTime.parse(dateq, dtf);
System.out.println("new date " + dateTime1);
のコード例は、重複した質問(などからインスピレーションを得ました私はそれを参照してください)、How to convert Xml String date to int in java。
date de la requete est Tue Feb 08 12:30:27 +0000 2011
new date 2011-02-08T12:30:27Z
Q:(?)私はAndroid上で新しいクラスを使用することはできません
A:それは印刷し、その質問の例の文字列ではい、できます。 Androidの場合は、特にAndroidに合わせたバックポートThreeTenABPを使用します。それ以外の場合は、Java 6および7ではThreeTen Backportを使用します。
Q:日時文字列のコードがで動作しません。質問!
A:(1)可能であれば、CESTのような3文字と4文字のタイムゾーンの略語を避けてください。多くはあいまいであり、解釈はJVMの現在のタイムゾーン設定によって異なる場合もあります。 CESTはフルタイムゾーンではなく、ちょうど夏の半分のタイムゾーンです。 (2)CEST
などの文字列を取得できない場合は、OffsetDateTime
の代わりにZonedDateTime
を使用し、質問のようにフォーマットパターンにzzz
を使用してください。これはこの例で動作し、2012-04-08T16:37+02:00[Europe/Paris]
を生成します。
Q:新しいクラスを使用するにはどうすればよいですか?
A:開始するには、良い場所はOracle Tutorialです。
質問:Locale.ROOT
??
A:日時文字列が世界の特定の場所とその場所の言語に由来する場合は、対応するロケールを使用します。どこのコンピュータシステムでも英語を出力する傾向があるため、ちょうど英語の場合は、「ここではロケール固有のことはしない」というように、「ロケールニュートラルロケール」にはLocale.ROOT
を使用することをお勧めします。
はい。 2番目の 'd' –
ありがとうございますが、同じ例外がスローされます。 – Domiik
いいえ、そうではありません。変更後にコードを再コンパイルしてみてください。 (奇妙なロケールの問題が起こっていない限り) –