106 votes

Comment obtenir l'heure (heure, minute, seconde) dans Swift 3 à l'aide de NSDate?

Comment déterminer les heures, les minutes et les secondes de la classe NSDate dans Swift 3?

Dans Swift 2:

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

Swift 3?

198voto

SaRaVaNaN DM Points 2538

Dans Swift 3.0, Apple supprimait le préfixe "NS" et simplifiait tout. Vous trouverez ci-dessous le moyen d'obtenir l'heure, la minute et la seconde à partir du cours 'Date' (substitut NSDate)

 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)")
 

Comme ceux-ci, vous pouvez obtenir l’ère, l’année, le mois, la date, etc.

110voto

Dipen Panchasara Points 3401

Swift 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)")
 

27voto

Artem Points 266
let date = Date()       
let units: Set<Calendar.Component> = [.hour, .day, .month, .year]
let comps = Calendar.current.dateComponents(units, from: date)

22voto

Hamed Akhlaghi Points 778

Swift 4

     let calendar = Calendar.current
    let time=calendar.dateComponents([.hour,.minute,.second], from: Date())
    print("\(time.hour!):\(time.minute!):\(time.second!)")
 

19voto

Mohammad Tarem Points 121

Dans Swift 3, vous pouvez le faire,

 let date = Date()
let hour = Calendar.current.component(.hour, from: date)
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X