我已經創建了幾個SimpleDateFormat
的子類來簡化處理我在Android上談論的Azure feed。其中之一是: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
對象,並報告了它的日期是2012年,這正是我所期望的。爲什麼SimpleDateFormat
分手?
很可能出現了一個'Date'參與*地方*,因爲它的一年是1900年。 – 2012-03-17 15:13:31
我不認爲這裏有足夠的信息...我們需要知道您對SimpleDateFormat所做的具體調用,以產生錯誤的輸出以及它如何被初始化等等。 – FrankieTheKneeMan 2012-03-17 15:17:06
我已經得到了一個答案(下),但我會澄清我如何錯誤地構造我的Date對象。 – 2012-03-17 15:18:36