私はずっと検索してきましたが、これが起こっている理由や理由を見つけることができませんが、 DateFormat の parse(String) メソッドは私の文字列を正しく解析していません.
HTTPヘッダーに使用される日付形式に文字列を解析しようとしていますが、次のように文字列を独自に取得することまでできました。
Thu, 11 Nov 2010 18:34:22 GMT
形式は次のとおりです。
E, d MMM yyyy HH:mm:ss z
しかし、これを使用するdf.parse(dateStr);
と、次のようになります。
Thu Nov 11 18:34:22 GMT 2010
これは私が望んでいたものとはまったく異なります。なぜ今が GMT の後の年なのですか? コンマがなくなったのはなぜですか?そして、なぜ月の後の日付ですか?
私は今これについて完全に混乱しており、解決策を見つけることができませんが、日付をその形式にする必要があります。コンマは物事を台無しにしていますか?またはコロン?
御時間ありがとうございます、
インフィニティフィズ
PS
これについて言及するのを忘れていましたが、dateformat.setLenient(false) を試してみましたが、違いはありません。
PPS
日付を date1.before(date2) および after() などと比較して、一方が他方よりも新しいかどうかを確認するためにこれを実行しようとしていますが、解析が機能していないため、これを行うことはできません。
それらは同じように見えますが、形式だけが異なりますが、両方で getTime() を呼び出した後 (2 つの同一の日付を指定した場合)、long が同じではないため、同じではありません。日付のように:
2010 年 11 月 11 日木曜日 19:38:52 GMT ファイルの lastModified()
文字列「Thu, 11 Nov 2010 19:38:52 GMT」を入力し、parse() を使用して文字列を日付に変換し、その日付で getTime() を呼び出して long を比較すると、次のようになります。
lastModified = 1289504332671 fromString = 1289504332000
違うのは下3桁だけですが、何か意味はありますか?
お時間をいただきありがとうございました
インフィニティフィズ