Swift 4 ile test edildi
Güncel Tarih ve Saati Alma
Geçerli tarih ve saati şu şekilde alabilirsiniz:
let currentDateTime = Date()
Ancak, Date1 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 DateComponentsbileşenleri belirtmek ve sonra Calendartarihi oluşturmak için kullanabilirsiniz. CalendarVerir Datebağ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 DateFormatterdestekler.
Tarih ve Saati Gösterme
Yöntem 1
Yalnızca tarih veya saatin belirli bileşenlerini görüntülemek CalendarUnitistiyorsanı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 DateFormatterders 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