[英]Swift - Date formatter not working as expected
我正在編寫代碼將兩個日期從字符串轉換為日期對象,但是對於我傳遞給日期格式化程序的某些日期,這無法按預期工作。
這是我的代碼:
let stringDateMinimum = "00:00 " + year + "-0" + String(month+1) + "-01"
let stringDateMaximum = "00:00 " + year + "-0" + String(month+2) + "-01"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm yyyy/MM/dd"
let minimimDate = dateFormatter.date(from: stringDateMinimum)
let maximumDate = dateFormatter.date(from: stringDateMaximum)
print(stringDateMinimum)
print(minimimDate ?? "")
print(stringDateMaximum)
print(maximumDate ?? "")
這是控制台中的 output:
00:00 2022-03-01
2022-03-01 00:00:00 +0000
00:00 2022-04-01
2022-03-31 23:00:00 +0000
如果您比較控制台中的第 3 行和第 4 行,您可以看到輸入到日期格式化程序中的字符串在應該匹配日期格式化程序的 output 時不匹配。
感謝 Sweeper 的評論。 答案是在我輸入到日期格式化程序的字符串中包含一個時區。 因此,例如我將日期格式更改為:
dateFormatter.dateFormat = "HH:mm yyyy/MM/dd Z"
並將我的時區的 +0000 添加到 stringDateMinimum 和 stringDateMaximum
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.