java.text.SimpleDateFormat
XMLドキュメント内の日付/時刻値の文字列表現を解析するために使用しています。時間の値が12である時刻が12時間未来にシフトするすべての時刻が表示されます。つまり、正午の20分は、翌日の真夜中の20分を意味するように解析されます。
解析時にエラーが発生することを確認するユニットテストを作成しました(getTime()
Linuxシェルコマンドでの戻り値を確認しましたdate
)。今私は疑問に思っています:
parse()
メソッドにバグはありますか?入力データは、YahooのYWeatherサービスから取得されます。テストとその出力は次のとおりです。
public class YWeatherReaderTest
{
public static final String[] rgDateSamples = {
"Thu, 08 Apr 2010 12:20 PM CEST",
"Thu, 08 Apr 2010 12:20 AM CEST"
};
public void dateParsing() throws ParseException
{
DateFormat formatter = new SimpleDateFormat("EEE, dd MMM yyyy K:m a z",
Locale.US);
for (String dtsSrc : YWeatherReaderTest.rgDateSamples) {
Date dt = formatter.parse(dtsSrc);
String dtsDst = formatter.format(dt);
System.out.println(dtsSrc);
System.out.println(dtsDst);
System.out.println();
}
}
}
2010年4月8日木曜日12:20 PM CEST 2010年4月9日金曜日0:20 AM CEST 2010年4月8日木曜日12:20 AM CEST 2010年4月8日木曜日0:20 PM CEST
00:20はPMではないため、2番目の反復の2番目の出力行は少し奇妙です。Date
ただし、オブジェクトのミリ秒の値は、正午から20分の(間違った)時間に対応します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加