Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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 使用格式化程序从字符串获取零日期_Ios_Swift_Nsdate_Nsdateformatter - Fatal编程技术网

Ios 使用格式化程序从字符串获取零日期

Ios 使用格式化程序从字符串获取零日期,ios,swift,nsdate,nsdateformatter,Ios,Swift,Nsdate,Nsdateformatter,我使用此代码将字符串的数组日期转换为日期 let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss" for i in 0 ..< data.count { let time = data[i] let ft_date = time["ft_date"] as! String print(ft_date) let dateF = formatter.da

我使用此代码将
字符串的数组
日期转换为
日期

let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
for i in 0 ..< data.count {
     let time = data[i]
     let ft_date = time["ft_date"] as! String
     print(ft_date)
     let dateF = formatter.date(from: ft_date)
     print(dateF)
}

为什么会这样?这是相同的格式,但我得到零

您需要更改时间格式

formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"

您是否生活在一个夏时制在2017-03-22午夜改变的国家


如果是,这可能是原因,因为日期不存在。

怎么说这个
yyyy-MM-dd HH:MM:ss Z
等于
2017-03-22T00:00:00
返回值nil@Amir_P-我看不到你的约会有任何变化-你是什么意思@安布。Karthik@Amir_P-我说的每件事都是正确的,检查一下你的代码,你说的格式不起作用,我无法复制…我也很困惑,这在逻辑上是正确的,但是发生了@sweeper你检查过日光节约吗?不,我没有。我该怎么做@LionWe可以通过将时区设置为formatter.timeZone=timeZone(缩写:“IRST”)……来重现这一点。如果我们将时区设置为伊朗昼时(“IRDT”),则IRST是伊朗标准时间的缩写这个问题是不可复制的。我住在伊朗,2017-03-22《代码》上没有变化,但我如何解决它?根据它在2017-03-22《代码》上的变化,你是对的。我该怎么办?2017年3月22日,伊朗的白天开始。答案可能会对您有所帮助。我的日期是字符串,因此我不能使用
isDaylightSavingTimeOrDate
,因为它会获取
NSDate
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"