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



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


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)

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.