Dapatkan tanggal saat ini di Swift 3? [Tutup]

115

Bagaimana cara mengatur label.text tanggal sekarang di Swift 3?

Saya ingin mencetak hari ini ke layar. Saya tidak menemukan cara melakukan itu.

Di c # sangat sederhana:

var date = DateTime.Now

Saya perlu menulis 15.09.2016 dengan cepat 3. terima kasih

yucel
sumber
2
Kemungkinan duplikat stackoverflow.com/questions/24070450/…
koen
itu tidak berfungsi lagi?
yucel
1
Apakah Anda menggulir ke bawah untuk jawaban Swift 3?
koen
Saya mencoba tetapi saya tidak berhasil
yucel
1
Anda mungkin ingin menggunakan NSDateFormatterdan kemudian stringFromDate.
koen

Jawaban:

289

Anda mengatakan dalam komentar Anda ingin mendapatkan "15.09.2016".

Untuk ini, gunakan Datedan DateFormatter:

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

Berikan format yang Anda inginkan ke pemformat:

formatter.dateFormat = "dd.MM.yyyy"

Dapatkan string hasil:

let result = formatter.string(from: date)

Setel label Anda:

label.text = result

Hasil:

15.09.2016

Eric Aya
sumber
2
Di Swift 4.2, DateFormatter memiliki properti .dateStyle dan .timeStyle. Alih-alih sintaks yang agak buram di atas (yang memberikan kontrol lebih halus - lihat nsdateformatter.com ) Anda bisa menggunakan dateStyle yang dikombinasikan dengan lokal.
green_knight
63

Anda dapat melakukannya dengan cara ini dengan 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)
Jorge Casariego
sumber
22
Saya tidak percaya bahkan setelah Swift 3 penanganan tanggal itu sangat buruk! Ini memalukan mengingat Tanggal di .NET berada di versi 1 pada tahun 2002 dari memori. DateTime.Now atau DateTime.Now.Month jauh lebih mudah!
csmith
1
Bagaimana Anda tahu bahwa hari itu Sen, Sel, atau Rab?
Joseph Astrahan
1
Lihat SwiftDate Cocoapod jika Anda ingin cara yang jauh lebih mudah untuk berinteraksi dengan tanggal secara cepat.
Rob Norback
1
@csmith Itu karena masih NSDate lama tetapi dengan sintaks Swift. Itu belum ditulis ulang. Anda benar, itu sedikit menyakitkan untuk dikerjakan.
bandejapaisa