Swift3 如何将GMT字符串转换为时间戳

Swift3 如何将GMT字符串转换为时间戳,swift3,Swift3,我的字串是:“2016年10月7日星期五00:00:00 GMT” 我试试这个: let dateFormatter = DateFormatter() dateFormatter.dateFormat = "EEE, d MMM yyyy HH:mm:ss z" let someNSDate = dateFormatter.date(from: string) let myTimeStamp = someNSDate?.timeIntervalSince1970 return myTimeSt

我的字串是:“2016年10月7日星期五00:00:00 GMT” 我试试这个:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE, d MMM yyyy HH:mm:ss z"
let someNSDate = dateFormatter.date(from: string)
let myTimeStamp = someNSDate?.timeIntervalSince1970
return myTimeStamp!
但有些数据返回零
谢谢

按如下方式实现会为我返回以下内容:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "EEE, d MMM yyyy HH:mm:ss z"
let someNSDate = dateFormatter.dateFromString("Fri, 07 Oct 2016 00:00:00 GMT")
print(someNSDate)//This is Fri, 07 Oct 2016 00:00:00 GMT
let myTimeStamp = someNSDate?.timeIntervalSince1970
print(myTimeStamp)//This is 1475798400.0

您确定传递的日期字符串的所有实例的格式都正确吗?这可能是日期格式化程序返回零的原因。

是的!!!这在swift3中运行良好。。。非常感谢

class func timeStampFromString(string: String) -> Double {
   let dateFormatter = DateFormatter()
   dateFormatter.dateFormat = "EEE, d MMM yyyy HH:mm:ss z"
   dateFormatter.locale = NSLocale(localeIdentifier: "en-US") as Locale!
   let someNSDate = dateFormatter.date(from: string)
   let myTimeStamp = someNSDate?.timeIntervalSince1970
   return myTimeStamp!
}

可能重复:将dateformatter区域设置设置为“en_US_POSIX”。如果设备的语言不是英语,则不会解析日期字符串。您是正确的,但它在模拟器中工作正常,但在设备中不工作。。。可能是为了现场???