Wydaje się, że metoda setDefaultTimeZone
nie jest już dostępna w NSTimeZone
. Czy ktoś zna substytut tego?Swift 3 wydanie strefy czasowej
Dodanie kilka szczegółów: W moim appDelegate.swift mam
NSTimeZone.default = TimeZone(abbreviation: "BST")!
i działa zgodnie z przeznaczeniem Chyba ponieważ we wszystkich innych plików, otrzymuję NSTimeZone ustawienie tej wartości
teraz moim Utils, mam tej metody
static func getDate(_ dateStr: String) -> Date {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
// dateFormatter.timeZone = TimeZone(abbreviation: "GMT")
let date = dateFormatter.date(from: dateStr)!
return date
}
więc, powiedzmy, daję mu wejście „2016-10-07”, to daje mi powrót 2016-10-06 23:00. Czemu? Poprawi się, jeśli odkomentujesz linię w powyższym kodzie. Nie chcę używać tej linii wszędzie.
Na przykład w innej części mojego projektu użyłem CVCalendar (https://github.com/Mozharovsky/CVCalendar). Zapewnia funkcję uzyskania convertedDate jak tak
func didSelectDayView(_ dayView: DayView, animationDidFinish: Bool) {
selectedDay = dayView
selectedDate = dayView.date.convertedDate()!
}
samo, co dzieje się tu przed zbyt ... to klikam na 2016-10-08 i SelectedDate tutaj staje 07.10.2016 23: 00.
A NSTimeZone.Default wyświetla wszędzie Europę/Londyn.
Czy ktoś ma pojęcie, dlaczego tak się dzieje?
czy możesz pokazać ur wypróbowany kod –
https://developer.apple.com/reference/foundation/nstimezone/odnieś ten dokument –
@ Anbu.Karthik To jest to, czego używałem przed Swift3 w AppDelegate.swift. NSTimeZone.setDefaultTimeZone (TimeZone (skrót: "BST")!) – AmrataB