Только началось с детской площадки. Я пытаюсь создать простое приложение.
Я создал объект даты следующим образом:
var date = NSDate()
Как я могу получить текущий час? На других языках я могу сделать что-то вроде этого:
var hour = date.hour
Но я не могу найти какие-либо свойства / методы, подобные этому. Я нашел метод dateWithCalendarFormat
. Должен ли я использовать это? Если так, то КАК?
let components = calendar.components(.NSCalendarUnit.Year.union(NSCalendarUnit.Minute), fromDate: date)
, вертикальная косая черта здесь больше не используется.let components = calendar.components(NSCalendarUnit.Year.union(NSCalendarUnit.Minute), fromDate: date)
убрал лишнее '.' до NSCalendarUnitlet components = calendar.components([ .Hour, .Minute, .Second], fromDate: date)
Протестировано с Swift 4
Получение текущей даты и времени
Вы можете получить текущую дату и время так же просто, как это:
Однако
Date
это 64-разрядное число с плавающей запятой, которое измеряет количество секунд с базовой даты 1 января 2001 года в 00:00:00 UTC . Я могу увидеть этот номер для текущей даты и времени, используяНа момент написания статьи он вернулся
497626515.185066
, вероятно, не совсем то, что вы ищете. Продолжай читать.Создание другой даты и времени
Способ 1
Если вы знаете количество секунд до или после отчетной даты, вы можете использовать это.
Способ 2
Конечно, было бы проще использовать такие вещи, как годы, месяцы, дни и часы (а не относительные секунды) для создания
Date
. Для этого вы можете использовать,DateComponents
чтобы указать компоненты, а затемCalendar
создать дату. ЭтоCalendar
даетDate
контекст. Иначе как бы он узнал, в каком часовом поясе или календаре это выражать?Другие сокращения часовых поясов можно найти здесь . Если вы оставите это поле пустым, по умолчанию будет использоваться часовой пояс пользователя.
Способ 3
Наиболее кратким способом (но не обязательно лучшим) может быть использование
DateFormatter
.В технических стандартах Unicode показать другие форматы , что
DateFormatter
подставки.Отображение даты и времени
Способ 1
Если вы хотите просто отобразить определенные компоненты даты или времени, вы можете использовать их
CalendarUnit
для указания компонентов, из которых вы хотите извлечьDate
.Смотрите также этот ответ .
Способ 2
Метод 1 дал вам компоненты, но было бы много работы для форматирования этих чисел для каждого стиля, языка и региона. И вам не нужно. Это уже было сделано для вас с
DateFormatter
классом.Вот продолжение приведенного выше кода, который показывает больше параметров форматирования:
Имейте в виду, однако, что это для английского языка с регионом США. Для других языков и регионов форматирование будет выглядеть иначе.
Дальнейшее обучение
источник
Вы также можете использовать удобный метод NSDateFormatter, например,
источник
Swift позволяет легко создавать и использовать расширения. Я создаю
sharedCode.swift
файл и помещаю в него перечисления, расширения и другие забавные вещи. Я создалNSDate
расширение, чтобы добавить некоторые типичные функциональные возможности, которые трудно и некрасиво печатать снова и снова:используя это расширение, вы можете сделать что-то вроде:
Который за 11:51 написал бы:
источник
Swift 2 ответ:
источник
Swift 4
ВЫВОД
2018-May-01 10:41:31
источник
Свифт 3:
PS - не уверен, что именно означает вопрос, принимая текущее время (и час) в качестве даты, но, надеюсь, вышесказанное должно объяснить достаточно, чтобы ответить на вопрос.
источник
С Swift 5
Foundation
предлагает много способов получить значение часа отDate
объекта. В зависимости от ваших потребностей вы можете выбрать один из четырех следующих фрагментов кода Playground .# 1. Используя
Calendar
dateComponents(_:from:)
методCalendar
имеет метод с именемdateComponents(_:from:)
.dateComponents(_:from:)
имеет следующую декларацию:Использование:
# 2. Используя
Calendar
component(_:from:)
методCalendar
имеет метод с именемcomponent(_:from:)
.component(_:from:)
имеет следующую декларацию:Использование:
# 3. Использование
DateFormatter
dateFormat
свойстваDateFormatter
имеет свойство под названиемdateFormat
.dateFormat
имеет следующую декларацию:Использование:
# 4. Используя
Dateformatter
setLocalizedDateFormatFromTemplate(_:)
методDateformatter
имеет метод с именемsetLocalizedDateFormatFromTemplate(_:)
.setLocalizedDateFormatFromTemplate(_:)
имеет следующую декларацию:Использование:
источник
если вам просто нужен час дня
источник
В Свифте 3
источник
let calendar = Calendar.current; let unitFlags: Set<Calendar.Component> = Set<Calendar.Component ([.hour]); let components = calendar.dateComponents(unitFlags, from: self)
Использование Date Formatter -Swift 3.0
Обновление даты и времени каждые секунды
Примечание. DateAndTime в коде таймера является именем класса.
источник
Я знаю, что есть много ответов, но я думаю, что мой может быть более удобным для многих
источник
Вы можете попробовать это
Теперь вызовите этот метод и получите дату с часами, минутами и секундами
источник
Вы можете использовать в быстрой 4 или 5, как показано ниже
Ouput будет как ниже
источник
Xcode 8.2.1 • Swift 3.0.2
источник
Date().hour
В продолжение эпически краткого решения noiiv , вот еще более лаконичная реализация Swift 3/4:
Свифт 3/4
Также, расширив расширение Лео Дабуса, мы можем иметь:
И используйте это так:
источник
Date
объекта, например, года, месяца, дня и т . д. Кстати, метод компонента календаря больше подходит для одного компонентаDateComponents.year
Int?
component
метод для этих методов доступатолько для даты в определенном формате
источник
Swift 5
и вызов функции printTimestamp ()
источник
Вы можете создать расширение
Date
таким образом, чтобы его можно было легко вызывать в других файлах. Вот пример расширения даты, которое использует вычисляемое свойство.Он распечатает это: «Сегодня, 16:55»
источник
Вы можете использовать Swift4 или Swift 5 ниже:
вывод как:
источник
Если вам нужно отформатировать ответ определенным образом, вы можете легко использовать этот метод, по умолчанию = "dd-MM-yyyy".
Получение сегодняшней даты теперь можно сделать с помощью
источник
SWIFT 4:
источник
источник
Вот расширение SWIFT, чтобы получить ваше текущее время местоположения устройства (GMT).
Получить сейчас время: -
источник
Работает со Swift 5 (Xcode 10 и Xcode 11) (из Франции UTC)
Если вы хотите отображать только дату, установите
formatter.dateFormat
Для отображения только часов, измените
formatter.dateFormat
наНе забудьте добавить
getCurrentDateTime()
вviewDidLoad
.источник
Вы можете получить от Dateformatter
источник