Я пытаюсь получить текущую дату в формате String. Просто свидание.

Вот код, и я ошибаюсь. Мне нужна строка в формате ГГГГ-мм-дд. Просто свидание.

let date = NSDate.date()

println(date)

let dateFormatter = NSDateFormatter()
var dateFormat = "yyyy-MM-dd"

println()

let timeZone = NSTimeZone(name: "UTC")

println(dateFormatter.stringFromDate(dateFormat)) // This string returns no value :(

И второй вопрос. Будет ли он возвращать дату, указанную на устройстве - текущий момент, или мне нужно указать часовой пояс, известное время в формате UTC или GMT + 1? Если у пользователя iOs есть правильная дата на его или ее устройстве, тогда указывать часовой пояс может не потребоваться? Лучшая практика здесь, пожалуйста.

Спасибо.

0
thinkswift 14 Авг 2014 в 23:31
1
Подсказка: ваша переменная date (которая содержит текущую дату) вообще не используется в следующих вычислениях ....
 – 
Martin R
14 Авг 2014 в 23:36
Да, различные тесты и испытания, включая дату, опущены. Эти строки (за исключением println (), конечно, извините за это) иллюстрируют то, что я делаю и комбинирую.
 – 
thinkswift
14 Авг 2014 в 23:40

1 ответ

Лучший ответ

Основная ошибка заключается в том, что stringFromDate() ожидает в качестве аргумента дату , а не формат даты. Вместо этого формат даты должен быть назначен свойству dateFormat средства форматирования даты.

let date = NSDate.date()
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let str = dateFormatter.stringFromDate(date)
println(str)

При этом дата будет напечатана с использованием часового пояса по умолчанию на устройстве. Только если вам нужен вывод в соответствии с другим часовым поясом, вы можете добавить, например,

dateFormatter.timeZone = NSTimeZone(name: "UTC")
3
Martin R 14 Авг 2014 в 23:48
Да. Я вижу, в чем я ошибался. Спасибо. Для первой строки я мог бы сократить let date = NSDate ()
 – 
thinkswift
14 Авг 2014 в 23:56