2016-07-07 1 views
44

Как определить час, минуту и ​​секунду из класса NSDate в Swift 3?Как получить время (час, минута, секунда) в Swift 3 с помощью NSDate?

В Swift 2:

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

Swift 3?

+0

Смотрите также [этот ответ] (HTTP: // StackOverflow .com/а/33343958/3681880). – Suragch

+1

Возможный дубликат [Как получить текущее время как дату и время] (http://stackoverflow.com/questions/24070450/how-to-get-the-current-time-as-datetime) – Moritz

ответ

121

Swift 3.0 Apple удалил префикс «NS» и сделал все просто. Ниже способ получить часы, минуты и второй из «Date» класса (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)") 

Как это вы можете получить эпоху, год, месяц, дата и т.д., передавая соответствующий.

55

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

Что делать, если я получаю ' Компонент 'не является типом членства «Календарь» на строке 'let unitFlags ...' ' – netigger

+1

То, что вы спрашиваете, мне нечетко, Как вы можете добавить тип нечленов в' Calendar.Component'? Рассмотрите, что ваша дата соответствует «02/12/15, 16:46», где секунд нет, и вы пытаетесь извлечь секунды, используя Компоненты, в этом случае он вернет вам «0». –

+0

Я нашел свою проблему ... Я объявила структуру с именем «Календарь», которая явно помешала «Calendar.Component». – netigger

8

В Swift 3 вы можете сделать это,

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 

 Смежные вопросы

  • Нет связанных вопросов^_^