2016-10-27 3 views
0

моя строка является то, что: "Пт, 7 октября 2016 00:00:00 GMT" Я стараюсь это:Как конвертировать GMT строку TIMESTAMP

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! 

но someNSDate возвращать ноль спасибо!

+1

Возможный дубликат http://stackoverflow.com/questions/33451082/swift-converting-nsdate-to-24h-format-fails-on-device/33451583#33451583: Установите dateformatter локаль «en_US_POSIX ». –

+0

Если язык вашего устройства не является английским, строка даты не будет анализироваться. – rmaddy

ответ

-1

Реализация следующим образом возвращает следующий за мной:

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 

Вы уверены, что все экземпляры строки даты прошли в правильном формате? Это вероятная причина возврата нуля из форматирования даты.

+0

вы rigth, но он отлично работает в симуляторе, но не работает в устройстве ... может быть для Locale ??? –

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! 
} 
Смежные вопросы