Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 日期格式化程序不';t“的返回日期”;HH:mm:ss“;_Ios_Swift_Date_Swift3 - Fatal编程技术网

Ios 日期格式化程序不';t“的返回日期”;HH:mm:ss“;

Ios 日期格式化程序不';t“的返回日期”;HH:mm:ss“;,ios,swift,date,swift3,Ios,Swift,Date,Swift3,以下是代码摘录: func mapping(map: Map) { time <- (map["time"], TransformOf<Date, String>(fromJSON: { let dateFormatter = DateFormatter() dateFormatter.dateFormat = "HH:mm:ss" //dateFormatter.timeZone = TimeZone(abbr

以下是代码摘录:

func mapping(map: Map) {
    time      <- (map["time"], TransformOf<Date, String>(fromJSON: {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "HH:mm:ss"
        //dateFormatter.timeZone = TimeZone(abbreviation: "EEST")
        if let argument = $0 {
            let date = dateFormatter.date(from: argument)
            return dateFormatter.date(from: argument)
        }
        return nil
        }}
func映射(映射:映射){
时间从(增加强调):

另一方面,如果您使用的是固定格式的日期,您应该首先将日期格式化程序的区域设置为适合您的固定格式。在大多数情况下,最好选择“en_US_POSIX”,这是一个专门设计用于生成美国英语结果的区域设置,无论用户和系统偏好如何

这将防止日期被根据 用户的区域设置:

let dateFormatter = DateFormatter()
// Set the locale first ...
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
// ... and then the date format:
dateFormatter.dateFormat = "HH:mm:ss"

// ...

另请参见。

您可能必须将格式化程序的区域设置设置为“en_US_POSIX”,例如,请参阅或。该应用程序将不会在美国使用,即使是这样,我也不希望它为en_US进行本地化。此外,我检查了模拟器和ipod的设置,两者都是相同的。@Bymaf:如果它有区别,你至少试过了吗?离题:如果我不理解此语法,我会用谷歌搜索什么:`time@MartinR我试过了工作正常,但返回的值与模拟器正常返回的值不同。两个UTC,在设备中提前1小时使用en_US_POSIX