我有一个来自后端的日期字符串为“2022-08-16T13:44:11.8743234”。日期格式化和转换是本书中最古老的技能,但我无法弄清楚为什么我无法在 Swift iOS 中将该字符串转换为 Date 对象。我指定的任何源格式都为零。
private func StringToDate(dateString: String) -> Date? { let formatter = DateFormatter() formatter.dateFormat = "YYYY-MM-DDTHH:mm:ss.[nnnnnnn]" let date = formatter.date(from: dateString) return date //this is nil every time }
DateTime2 是普通 C# DateTime 的更精确的 SQL Server 扩展,因此日期字符串在秒后有 7 个小数位。
我究竟做错了什么?
在您的代码中,您处理毫秒部分的方式是错误的。我们通常.SSS使用毫秒。看看这里它显示了与日期格式相关的所有符号。
.SSS
let dateFormatter = DateFormatter() dateFormatter.locale = Locale(identifier: "en_US_POSIX") dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS" let date = dateFormatter.date(from: "2022-08-16T13:44:11.8743234") print(date)
除此之外,您正在使用DD一天。DD表示一年中的某一天(数字)。所以应该是dd。同样的情况也适用于这一年。
DD
dd