Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.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 使用DateFormatter时字符串时区中的日期不符_Ios_Swift_Timezone_Dateformatter - Fatal编程技术网

Ios 使用DateFormatter时字符串时区中的日期不符

Ios 使用DateFormatter时字符串时区中的日期不符,ios,swift,timezone,dateformatter,Ios,Swift,Timezone,Dateformatter,代码: 输出: 为什么日期输出时区是+07:30,而不是日期字符串和timezone.current中定义的+0800?任何人都能解释这一点?时区格式不是Z,而是ZZZ let isoDate = "1981-02-20T10:44:00+0800" let dateFormatter = DateFormatter() dateFormatter.timeZone = TimeZone.current dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:m

代码:

输出:


为什么日期输出时区是+07:30,而不是日期字符串和timezone.current中定义的+0800?任何人都能解释这一点?

时区格式不是
Z
,而是
ZZZ

let isoDate = "1981-02-20T10:44:00+0800"
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"

var localTimeZoneAbbreviation: String { return TimeZone.current.abbreviation() ?? "" }

let date = dateFormatter.date(from: isoDate)!
dateFormatter.string(from: date)

这也没有将时区设置为+0800,我只是编辑我的答案。时区格式为3 Z而不是4。将Z格式更改为各种组合。仍然是相同的输出GMT+0730I我只是再次检查,我认为它可以工作,但打印方法返回的结果是+0000,但时间是02:44,而不是10:44,因此它增加了8小时。如果在代码中操作相同的对象。一切正常。请注意,
时区。当前值是默认值。。。
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZ"