Итак, я смотрел еще один вопрос здесь, и крест на этом:Дата-Строка -> Нарушение строковой даты?
У меня есть расширение для NSDate
extension NSDate {
private class var formatter : NSDateFormatter {
let nsDateFormatter = NSDateFormatter()
nsDateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
nsDateFormatter.locale = NSLocale.currentLocale()
return nsDateFormatter
}
//NSString to NSDate
public convenience init(dateString:String) {
let dateObj = NSDate.formatter.dateFromString(dateString)!
self.init(timeInterval: 0, sinceDate: dateObj)
}
//NSDate to String
public func getString() -> String {
return NSDate.formatter.stringFromDate(self)
}
}
Это работает просто отлично:
var date = NSDate() //"Feb 2, 2016, 12:36 PM"
var string = date.getString() //"2016-02-02 12:36:11 -0500"
let copyDate = NSDate(dateString: string) //"Feb 2, 2016, 12:36 PM"
copyDate.getString() //"2016-02-02 12:36:11 -0500"
Но если я использую, например:
"EEE, d MMM YYYY HH: мм: сс ZZZ" как DateFormat:
var date = NSDate() //"Feb 2, 2016, 12:58 PM"
var string = date.getString() //"Tue, 2 Feb 2016 12:58:48 GMT-5"
let copyDate = NSDate(dateString: string) //"Dec 22, 2015, 12:58 PM"
copyDate.getString() //"Tue, 22 Dec 2015 12:58:48 GMT-5"
Почему это происходит?
Он не должен работать в соответствии с предыдущим случаем?
Почему у меня есть несколько дней и даже месяц срыва?
Там нет никакой разницы, я уже пробовал. –
@LeoDabus Я нахожусь на своем iMac, с открытой площадкой для этого, поверьте мне, я уже пробовал это. –
ГГГГ в прописных буквах (в большинстве случаев) * не *, что вы хотите, см., Например, http://stackoverflow.com/questions/15133549/difference-between-yyyy-and-yyyy-in-nsdateformatter. –