Swift 4 ile test edildi
Güncel Tarih ve Saati Alma
Geçerli tarih ve saati şu şekilde alabilirsiniz:
let currentDateTime = Date()
Ancak, Date
1 Ocak 2001 referans tarihinden 00:00:00 UTC'den bu yana geçen saniye sayısını ölçen 64 bit kayan nokta sayısıdır . Şu tarihte şu sayıyı kullanarak görebilirim:
Date().timeIntervalSinceReferenceDate
Bu yazı yazıldığı zaman 497626515.185066
, muhtemelen tam olarak aradığınız şey değil, geri döndü . Okumaya devam et.
Başka Bir Tarih ve Saat Oluşturma
Yöntem 1
Referans tarihinden önceki veya sonraki saniye sayısını biliyorsanız, bunu kullanabilirsiniz.
let someOtherDateTime = Date(timeIntervalSinceReferenceDate: -123456789.0) // Feb 2, 1997, 10:26 AM
Yöntem 2
Tabii ki, bir yapmak için yıllar, aylar, günler ve saatler (göreli saniye yerine) kullanmak daha kolay olurdu Date
. Bunun için DateComponents
bileşenleri belirtmek ve sonra Calendar
tarihi oluşturmak için kullanabilirsiniz. Calendar
Verir Date
bağlamı. Aksi takdirde, hangi saat dilimini veya takvimi ifade edeceğini nasıl bilebilir?
// Specify date components
var dateComponents = DateComponents()
dateComponents.year = 1980
dateComponents.month = 7
dateComponents.day = 11
dateComponents.timeZone = TimeZone(abbreviation: "JST") // Japan Standard Time
dateComponents.hour = 8
dateComponents.minute = 34
// Create date from components
let userCalendar = Calendar.current // user calendar
let someDateTime = userCalendar.date(from: dateComponents)
Diğer saat dilimi kısaltmaları burada bulunabilir . Bunu boş bırakırsanız, varsayılan değer kullanıcının saat dilimini kullanmaktır.
Yöntem 3
En özlü yol (ama mutlaka en iyisi değil) kullanmak olabilir DateFormatter
.
let formatter = DateFormatter()
formatter.dateFormat = "yyyy/MM/dd HH:mm"
let someDateTime = formatter.date(from: "2016/10/08 22:31")
Unicode teknik standartlar diğer biçimleri göstermek olduğunu DateFormatter
destekler.
Tarih ve Saati Gösterme
Yöntem 1
Yalnızca tarih veya saatin belirli bileşenlerini görüntülemek CalendarUnit
istiyorsanız, ayıklamak istediğiniz bileşenleri belirtmek için kullanabilirsiniz Date
.
// get the current date and time
let currentDateTime = Date()
// get the user's calendar
let userCalendar = Calendar.current
// choose which date and time components are needed
let requestedComponents: Set<Calendar.Component> = [
.year,
.month,
.day,
.hour,
.minute,
.second
]
// get the components
let dateTimeComponents = userCalendar.dateComponents(requestedComponents, from: currentDateTime)
// now the components are available
dateTimeComponents.year // 2016
dateTimeComponents.month // 10
dateTimeComponents.day // 8
dateTimeComponents.hour // 22
dateTimeComponents.minute // 42
dateTimeComponents.second // 17
Bu yanıta da bakınız .
Yöntem 2
Yöntem 1 size bileşenleri verdi, ancak bu sayıları her stil, dil ve bölge için biçimlendirmek çok iş olurdu. Ve buna gerek yok. Bu DateFormatter
ders için sizin için zaten yapıldı .
// get the current date and time
let currentDateTime = Date()
// initialize the date formatter and set the style
let formatter = DateFormatter()
formatter.timeStyle = .medium
formatter.dateStyle = .long
// get the date time String from the date object
formatter.string(from: currentDateTime) // October 8, 2016 at 10:48:53 PM
Daha fazla biçimlendirme seçeneği gösteren yukarıdaki kodun devamı:
// "10/8/16, 10:52 PM"
formatter.timeStyle = .short
formatter.dateStyle = .short
formatter.string(from: currentDateTime)
// "Oct 8, 2016, 10:52:30 PM"
formatter.timeStyle = .medium
formatter.dateStyle = .medium
formatter.string(from: currentDateTime)
// "October 8, 2016 at 10:52:30 PM GMT+8"
formatter.timeStyle = .long
formatter.dateStyle = .long
formatter.string(from: currentDateTime)
// "October 8, 2016"
formatter.timeStyle = .none
formatter.dateStyle = .long
formatter.string(from: currentDateTime)
// "10:52:30 PM"
formatter.timeStyle = .medium
formatter.dateStyle = .none
formatter.string(from: currentDateTime)
Bununla birlikte, bunun ABD'ye ayarlanmış bölge ile İngilizce için olduğunu unutmayın. Diğer diller ve bölgeler için biçimlendirme farklı görünecektir.
İlerideki çalışma