В Swift 4.2 DateFormatter имеет свойства .dateStyle и .timeStyle. Вместо несколько непрозрачного синтаксиса выше (который дает более детальный контроль - см. Nsdateformatter.com ) вы можете использовать dateStyle в сочетании с локалью.
green_knight
63
В Swift 3.0 это можно сделать следующим образом:
let date =Date()let calendar =Calendar.current
let components = calendar.dateComponents([.year,.month,.day], from: date)let year = components.year
let month = components.month
let day = components.day
print(year)
print(month)
print(day)
Я не могу поверить даже после Swift 3, что обработка даты настолько плохая! Позор, учитывая, что Date в .NET была в версии 1 в 2002 году по памяти. DateTime.Now или DateTime.Now.Month намного проще!
csmith
1
Как узнать, пн, вторник или среда сегодня?
Джозеф Астрахан
1
Ознакомьтесь с SwiftDate Cocoapod, если вы хотите гораздо более простой способ быстро взаимодействовать с датами.
Rob Norback 07
1
@csmith Это потому, что это все еще старый NSDate, но с синтаксисом Swift. Он не переписывался. Вы правы, работать с этим немного неудобно.
NSDateFormatter
а затемstringFromDate
.Ответы:
Вы говорите в комментарии, что хотите получить «15.09.2016».
Для этого используйте
Date
иDateFormatter
:Дайте форматировщику нужный формат:
Получите строку результата:
Установите свой ярлык:
Результат:
источник
В Swift 3.0 это можно сделать следующим образом:
источник