Получить текущую дату в Swift 3? [закрыто]

115

Как установить текущую дату label.text в Swift 3?

Я хочу только сегодня напечатать на экран. Я не нашел как это сделать.

В C # очень просто:

var date = DateTime.Now

Мне нужно написать 15.09.2016 в быстром 3. спасибо

Юсель
источник
2
Возможный дубликат stackoverflow.com/questions/24070450/…
Коэн
это больше не работает?
yucel
1
Вы прокрутили весь путь вниз, чтобы найти ответ Swift 3?
Коэн
Я пробовал, но у меня не
получилось
1
Вероятно, вы захотите использовать NSDateFormatterа затем stringFromDate.
Коэн

Ответы:

289

Вы говорите в комментарии, что хотите получить «15.09.2016».

Для этого используйте Dateи DateFormatter:

let date = Date()
let formatter = DateFormatter()

Дайте форматировщику нужный формат:

formatter.dateFormat = "dd.MM.yyyy"

Получите строку результата:

let result = formatter.string(from: date)

Установите свой ярлык:

label.text = result

Результат:

15.09.2016

Эрик Айя
источник
2
В 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)
Хорхе Касариего
источник
22
Я не могу поверить даже после Swift 3, что обработка даты настолько плохая! Позор, учитывая, что Date в .NET была в версии 1 в 2002 году по памяти. DateTime.Now или DateTime.Now.Month намного проще!
csmith
1
Как узнать, пн, вторник или среда сегодня?
Джозеф Астрахан
1
Ознакомьтесь с SwiftDate Cocoapod, если вы хотите гораздо более простой способ быстро взаимодействовать с датами.
Rob Norback 07
1
@csmith Это потому, что это все еще старый NSDate, но с синтаксисом Swift. Он не переписывался. Вы правы, работать с этим немного неудобно.
bandejapaisa