小编典典

DateTime2 格式转换为 Swift 日期

all

我有一个来自后端的日期字符串为“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 个小数位。

我究竟做错了什么?


阅读 72

收藏
2022-08-17

共1个答案

小编典典

在您的代码中,您处理毫秒部分的方式是错误的。我们通常.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。同样的情况也适用于这一年。

2022-08-17