Это то, что мне приходилось делать несколько раз, но я считаю, что это одна из тех вещей, которые я всегда забываю делать. Поэтому я решил написать сообщение, показывающее, как получить hour
, minutes
и second
с помощью Date
.
Первое, что нам нужно сделать, это создать новый экземпляр Date
, а также получить текущий Calendar
. Для этого мы можем использовать следующий код:
let date = Date() var calendar = Calendar.current
После этого нам просто нужно решить, какие компоненты мы хотим. В этом случае мы будем использовать hour
, minute
и second
. Есть и другие, полный список Calendar
компонентов включает: era
, year
, month
, day
, hour
, minute
, second
, weekday
, weekdayOrdinal
, quarter
, weekOfMonth
, weekOfYear
, yearForWeekOfYear
, nanosecond
, calendar
и timeZone
.
Чтобы использовать любое из этих значений, нам нужно использовать наш calendar
, который у нас есть. Итак, чтобы получить hour
, minute
и second
, все, что нам нужно сделать, это следующее:
let hour = calendar.component(.hour, from: date) let minute = calendar.component(.minute, from: date) let second = calendar.component(.second, from: date)
И это почти все. Одна из проблем заключается в том, что если час, минута или секунда меньше 10, он не будет префиксом значения с 0.
Если хотите, можете также установить timeZone
календаря. Для этого вы создаете новый экземпляр TimeZone
с идентификатором часового пояса, который вам нужен, а затем устанавливаете свойство timeZone
в calendar
.
Установить timeZone
так же просто:
if let timeZone = TimeZone(identifier: "EST") { calendar.timeZone = timeZone }
Это необходимо сделать до того, как вы получите calendar.component
, иначе будет использоваться значение по умолчанию timeZone
.
Полный источник:
let date = Date() var calendar = Calendar.current if let timeZone = TimeZone(identifier: "EST") { calendar.timeZone = timeZone } let hour = calendar.component(.hour, from: date) let minute = calendar.component(.minute, from: date) let second = calendar.component(.second, from: date) print("\(hour):\(minute):\(second)")
Первоначально опубликовано на https://programmingwithswift.com 16 октября 2019 г.