Pobierz aktualną datę w Swift 3? [Zamknięte]


115

Jak mogę ustawić bieżącą datę label.text w Swift 3?

Chcę dzisiaj wydrukować na ekranie. Nie znalazłem, jak to zrobić.

W języku C # jest bardzo proste:

var date = DateTime.Now

Muszę szybko napisać 15.09.2016 3. dzięki



to już nie działa?
yucel

1
Czy przewinąłeś całą drogę na sam dół, aby uzyskać odpowiedź Swift 3?
koen

Próbowałem, ale nie udało mi się
yucel

1
Prawdopodobnie chcesz użyć NSDateFormattera następnie stringFromDate.
koen

Odpowiedzi:


289

W komentarzu mówisz, że chcesz dostać „15.09.2016”.

W tym celu użyj Datei DateFormatter:

let date = Date()
let formatter = DateFormatter()

Podaj format, który chcesz formatującemu:

formatter.dateFormat = "dd.MM.yyyy"

Pobierz ciąg wynikowy:

let result = formatter.string(from: date)

Ustaw etykietę:

label.text = result

Wynik:

15.09.2016


2
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.current
let components = calendar.dateComponents([.year, .month, .day], from: date)

let year =  components.year
let month = components.month
let day = components.day

print(year)
print(month)
print(day)

22
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.
bandejapaisa
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.