【发布时间】:2021-08-02 20:42:30
【问题描述】:
我写了一个日期格式化程序,但似乎 Swift 的日期格式化程序本身忽略了月份。文档说这不应该发生。如何让它不忽略月份?
let testDate:String = "2020-11-22-11:00"
print("start date: ",testDate," reformatted date: ", reformatDate(dateString: testDate))
func reformatDate(dateString: String) -> String? {
print("dateString: ",dateString)
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-DD-HH:mm"
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
return dateFormatter.string(from: dateString)
}
打印出来:
start date: 2020-11-22-11:00 converted date: 22-01-2020 11:00 AM
它不合理地把所有月份都变成了 1!
【问题讨论】:
-
为什么会影响 OPs 输出中的月份值?当我尝试时,
DD-MM-yyyy h:mm a的 dateFormat 输出Date = 132-05-2021 9:27 AM为Date() -
@DuncanC 我觉得有必要解释一下,所以我发布了一个答案。
-
我现在明白了。 OP 在 string-to-Date 输入格式化程序和 date-to-String 输出格式化程序中都使用了
DD。
标签: ios swift nsdate nsdateformatter nsdatecomponents