私はSimpleDateFormat
のサブクラスをいくつか作成して、Androidで話しているAzureフィードの処理を簡略化しました。次のようにそれらの一つは、次のとおりです。SimpleDateFormatサブクラスは年に1900を追加します
public class ISO8601TLDateFormat extends SimpleDateFormat {
private static String mISO8601T = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
public ISO8601TLDateFormat() {
super(mISO8601T);
}
public ISO8601TLDateFormat(Locale inLocale) {
super(mISO8601T, inLocale);
}
}
あなたは意志が
2012-03-17T00のように見えるの日付を生成または解釈することで見ることができるように:00:何である00.000 + 0100
Azureサービスは期待しています。私は、このようにDatePicker
から構築Date
オブジェクト内に送り込むときしかし、:
mDate = new Date(mDatePicker.getYear(), mDatePicker.getMonth(), mDatePicker.getDayOfMonth());
ISO8601TLDateFormat
の出力は
3912-03-17T00です:00:00.000 + 0100
あなたが見ることができるように、年は私よりも1900以上、誰かが未来からが必要です。私はDate
オブジェクトをAzureフィードシステム全体に精査し、その日付が2012年であると報告しました。これは私が予想したものです。 SimpleDateFormat
はなぜ壊れていますか?
の
0, 0, 1
ている第一に日付を構築することに留意する必要があります1900年です。 –私はそこに十分な情報はないと思う...あなたのSimpleDateFormatに行っている特定の呼び出しを知り、間違った出力を生成したり、初期化されているかどうかなどを調べる必要がある。 – FrankieTheKneeMan
私は答えがある(下記)、私は 'Date'オブジェクトをどうやって間違って構築したかを明確にします。 –