无法使用DateFormatter从字符串创建日期

时间:2018-06-28 11:48:50

标签: ios swift

我有以下日期字符串:

let dateString = "2018-06-24T14:52:32.647Z"

我正在尝试将其转换为日期。但是,它不适用于我的DateFormatter

我已经扩展了DateFormatter,以提供在整个应用程序中使用的静态格式化程序:

extension DateFormatter {
    static let formatter: DateFormatter = {
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"
        return formatter
    }()
}

然后我说:

let date = DateFormatter.formatter.date(from: dateString)

它在我的一台设备上返回nil,但在其余设备上均可使用。我究竟做错了什么?是不是因为我最后有三个Z,我应该有一个?

3 个答案:

答案 0 :(得分:1)

您需要下一个日期格式:

extension DateFormatter {
static let formatter: DateFormatter = {
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
    return formatter
}()}

答案 1 :(得分:0)

如果它可以在某些设备上使用,则必须是语言和地区问题。

签入设置->常规->语言和区域,在哪个区域工作,哪个不工作。

每个地区都有不同的日期格式。

答案 2 :(得分:0)

您将错误的格式发送给格式化程序

您必须更改此代码

n = size(A,2)

out = [ones(1,n);A]

使用

formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"