Pytanie Jak mogę przekonwertować datę włączenia strefy czasowej na szybką?


Chcę się nawrócić 2015-08-14T20:02:25-04:00 do 2015-08-14 16:02
Próbowałem poniżej, ale nie mógł wykonać dobrze (zwrócił zero).

let d = "2015-08-14T20:02:25-04:00"
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZZ"
let date: NSDate? = formatter.dateFromString(d)

Jak mogę przekonwertować ten format daty?


16
2017-08-15 08:20


pochodzenie


Nie jestem pewien, czy NSDateFormatter ma bezpośredni sposób, ale możesz rozłożyć ciąg znaków (np. podzielić na datę, czas, TZ) i utworzyć zgodny łańcuch, NSDateFormatter. - Thomas Kilian


Odpowiedzi:


Xcode 8 • Swift 3

Musisz uciec z "T" i użyć "xxxxx" dla "-04: 00":

let dateString = "2015-08-14T20:02:25-04:00"
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssxxxxx"
if let dateFromString = formatter.date(from: dateString) {
    formatter.dateFormat = "yyyy-MM-dd HH:mm"
    let stringFromDate = formatter.string(from: dateFromString)
}

Jeśli potrzebujesz referencji, możesz użyć tego:

enter image description here


30
2017-08-15 08:43



Mógłbym. Dziękuję Ci! - naohide
@naohide serdecznie zapraszamy - Leo Dabus
Nie działa, jeśli używam xxx dla "+05: 00" - Vakas
@Vakas zachęcamy do przesłania nowego pytania wraz z kodem i kroków niezbędnych do odtworzenia problemu. Z chęcią spoglądam, jeśli chcesz, bym - Leo Dabus
@LeoDabus woking dla mnie również, miałem inny problem w ciągu daty. - Vakas


Możesz użyć :

formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZ"

Mam nadzieję, że to ci pomoże!


2
2017-09-14 12:38