Отримати поточну дату в Swift 3? [зачинено]


114

Як я можу встановити поточну дату label.text у Swift 3?

Я хочу надрукувати саме сьогодні на екран. Я не знайшов, як це зробити.

У c # дуже просто:

var date = DateTime.Now

Мені потрібно написати 15.09.2016 стрімко 3. спасибі


2
Можливий дублікат stackoverflow.com/questions/24070450/…
koen

це більше не працює?
yucel

1
Чи прокручували ви всюди донизу відповідь Swift 3?
koen

Я спробував, але я не встиг
yucel

1
Можливо, ви хочете скористатися NSDateFormatterі тоді stringFromDate.
koen

Відповіді:


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, що обробка дати така погана! Соромно вважати, що Дата в .NET був у пам’яті версії 1 у 2002 році. DateTime.Now або DateTime.Now.Month - це набагато простіше!
csmith

1
Звідки ви знаєте, чи є цей день пн, вт чи ср?
Джозеф Астрахан

1
Ознайомтеся з SwiftDate Cocoapod, якщо ви хочете набагато простіший спосіб взаємодії з датами в швидкому режимі.
Роб Норбак

1
@csmith Це тому, що це все ще старий NSDate, але з синтаксисом Swift. Це не було переписано. Ти маєш рацію, але з цим трохи болісно працювати.
bandejapaisa
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.