RFC1123形式の日付のパース

HTTPヘッダのLast-Modifiedフィールドに設定されて日付をパースする方法のメモです。

DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss zzz", java.util.Locale.US);
Date date = df.parse("Fri, 22 May 2009 00:00:00 GMT");

注意点としては、月や曜日が含まれるのでLocale.USは必ず指定しないと例外が発生します。

HttpClientには、DateUtilというユーティリティクラスにparseDateというメソッドがあるのでHttpClientを使っている場合にはそちらを使ってもOK。parseDateでは、RFC1123のほかにHTTPで使用されるRFC1036とANSI C asctime()形式を処理できます。