2016-07-07 39 views
44

Swift 3'teki NSDate sınıfından saat, dakika ve saniye nasıl belirlenir? Swift 2'deSwift 3 ile NSDate kullanarak zaman nasıl alınır (saat, dakika, saniye)?

:

let date = NSDate() 
let calendar = NSCalendar.currentCalendar() 
let components = calendar.components(.Hour, fromDate: date) 
let hour = components.hour 

Swift 3?

+0

Ayrıca bkz [Bu cevap] (http: // stackoverflow com/a/33343958/3681880). – Suragch

+1

Olası çoğaltılabilir [Geçerli zamanın tarih bilgisi olarak nasıl alınır] (http://stackoverflow.com/questions/24070450/how-to-get-the-current-time-as-datetime) – Moritz

cevap

121

Swift 3.0 Apple, 'NS' önekini kaldırdı ve her şeyi basitleştirdi. Aşağıda saat, dakika almanın yolu ve ikinci 'Tarih' sınıfı (NSDate vekili) karşılık gelen ileterek çağ, yıl, ay, tarih vs. alabilirsiniz bunlar gibi

let date = Date() 
let calendar = Calendar.current 

let hour = calendar.component(.hour, from: date) 
let minutes = calendar.component(.minute, from: date) 
let seconds = calendar.component(.second, from: date) 
print("hours = \(hour):\(minutes):\(seconds)") 

değil.

55

Swift bunu yapabilirsiniz Swift 3'te 3,0

// *** Create date *** 
let date = NSDate() 

// *** create calendar object *** 
var calendar = NSCalendar.current 

// *** Get components using current Local & Timezone ***  
print(calendar.dateComponents([.year, .month, .day, .hour, .minute], from: date as Date)) 

// *** define calendar components to use as well Timezone to UTC *** 
let unitFlags = Set<Calendar.Component>([.hour, .year, .minute]) 
calendar.timeZone = TimeZone(identifier: "UTC")! 

// *** Get All components from date *** 
let components = calendar.dateComponents(unitFlags, from: date as Date) 
print("All Components : \(components)") 

// *** Get Individual components from date *** 
let hour = calendar.component(.hour, from: date as Date) 
let minutes = calendar.component(.minute, from: date as Date) 
let seconds = calendar.component(.second, from: date as Date) 
print("\(hour):\(minutes):\(seconds)") 
+0

Ya ben alırsam Bileşen 'üye' türü 'Takvimi' değil '' dır üniteFlags '' ' – netigger

+1

Ne soruyorsunuz bana açık değil, 'Calendar.Component' içinde üye olmayan türü nasıl ekleyebilirim? Tarihinizin "02/12/15, 16:46" yı takip ettiğini ve saniyeler olmadığını ve Bileşenleri kullanarak saniyeler elde etmeye çalıştığınızı düşünün. –

+0

Sorunumu buldum ... Açıkçası Calendar.Component ile etkileşime giren 'Calendar' adlı bir yapı duyurmuştum. – netigger

8

,

let date = Date() 
let hour = Calendar.current.component(.hour, from: date) 
17
let date = Date()  
let units: Set<Calendar.Component> = [.hour, .day, .month, .year] 
let comps = Calendar.current.dateComponents(units, from: date) 
2
let hours = time/3600 
let minutes = (time/60) % 60 
let seconds = time % 60 
return String(format: "%0.2d:%0.2d:%0.2d", hours, minutes, seconds) 
0
swift 4 

==> Getting iOS device current time:- 

print(" ---> ",(Calendar.current.component(.hour, from: Date())),":", 
       (Calendar.current.component(.minute, from: Date())),":", 
       (Calendar.current.component(.second, from: Date()))) 

output: ---> 10 : 11: 34