在Swift中分别显示日期和时间

时间:2017-11-14 16:41:05

标签: ios swift date time

尝试在Swift 3中单独显示时间和日期,两个字段都返回nil。我收到日期为标准Date()格式的字符串。

{{1}}

我得到了d& d的回复。吨。该参数确实包含正确的日期“2017-11-14 16:36:29 +0000”。

由于

1 个答案:

答案 0 :(得分:1)

您的代码无效,因为您需要先将dte转换为Date并执行此操作,您需要指定与完整日期字符串匹配的格式。您只需要一个Date,而不是两个。

没有理由创建两个单独的字符串,只是将它们组合成一个字符串。

public func formatDateForAbandonTicket(_ dte: String) -> String {
    print(dte)
    let df = DateFormatter()
    df.dateFormat = "yyyy-MM-dd HH:mm:ss Z"
    df.locale = Locale(identifier: "en_US_POSIX")
    if let date = df.date(from: dte) {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "d/MM/yyyy     HH:mm"
        dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
        let dateStr = dateFormatter.string(from: date)
        return dateStr
    } else {
        return ""
    }
}

另请注意,您要将结果转换为UTC时间而不是用户的区域设置时间。如果这是你需要的,那就好了,只要确保它对用户有意义。