我使用dateformatter轉換字符串和日期類型之間的日期,以通過UIDatePicker輸入日期。當視圖加載時,如果存在日期的已保存字符串,則將其放入日期文本字段(並正確輸入)。當dateformatter將字符串轉換爲日期時,它會返回錯誤的日期。 (上年始終十二月20ish。)日期格式化程序從字符串轉換爲日期時減去一年並改變日期
let df = DateFormatter()
df.dateFormat = "MM/dd/YYYY"
func setDatePickerDate() {
if dobText.text != "" {
print("\n\nSaved date as string: \(dobText.text!)")
let testDate = df.date(from:dobText.text!)
print("Saved date converted to date: \(testDate!)")
print("Date converted back to string: \(df.string(from: testDate!))")
dobPicker?.date = df.date(from: dobText.text!)!
}
}
將返回:
保存日期字符串:1977年6月7日 保存日期轉換爲日期:1976年12月19日06: 00:00 +0000 日期轉換回字符串:1976年12月19日
,如果我堅持跑步,它讓減去一年,改變了一天setDatePicker功能。
保存日期字符串:1976年12月19日保存 日期轉換成日期:1975年12月21日6點00分00秒0000 日期轉換回字符串:1975年12月21日
保存日期字符串:1975年12月21日 保存日期轉換爲日期:1974年12月22日06:00:00 +0000 日期轉換回字符串:1974年12月22日
等等
編輯:只注意到它週期之間的日期加1日期,直到它擊中25,然後返回到19.