W Swift 4.2 DateFormatter ma zarówno właściwości .dateStyle, jak i .timeStyle. Zamiast nieco nieprzejrzystej składni powyżej (która daje bardziej precyzyjną kontrolę - patrz nsdateformatter.com ) możesz użyć dateStyle w połączeniu z locale.
green_knight
63
Możesz to zrobić w ten sposób w Swift 3.0:
let date =Date()let calendar =Calendar.currentlet components = calendar.dateComponents([.year,.month,.day], from: date)let year = components.yearlet month = components.monthlet day = components.day
print(year)
print(month)
print(day)
Nie mogę uwierzyć, nawet po Swift 3, że obsługa dat jest tak zła! To wstyd, biorąc pod uwagę, że Data w .NET była w wersji 1 w 2002 roku z pamięci. DateTime.Now lub DateTime.Now.Month są o wiele łatwiejsze!
csmith
1
Skąd wiesz, czy ten dzień to poniedziałek, wtorek czy środa?
Joseph Astrahan,
1
Sprawdź SwiftDate Cocoapod, jeśli chcesz znacznie łatwiejszej interakcji z datami w szybkim tempie.
Rob Norback
1
@csmith Dzieje się tak, ponieważ nadal jest to stara NSDate, ale ze składnią Swift. Nie został przepisany. Masz jednak rację, praca z tym jest trochę uciążliwa.
NSDateFormatter
a następniestringFromDate
.Odpowiedzi:
W komentarzu mówisz, że chcesz dostać „15.09.2016”.
W tym celu użyj
Date
iDateFormatter
:Podaj format, który chcesz formatującemu:
Pobierz ciąg wynikowy:
Ustaw etykietę:
Wynik:
źródło
Możesz to zrobić w ten sposób w Swift 3.0:
źródło