Получить информацию о формате даты локали - PullRequest
0 голосов
/ 13 января 2019

Используя Swift 4, есть ли способ получить строковое представление формата даты локали? Основываясь на региональных настройках iPhone, я хотел бы выяснить, является ли формат гггг / мм / дд или мм / дд / гггг.

Я нашел все способы изменения формата даты или получения даты из формата локали, но не смог выяснить, как получить фактический формат.

1 Ответ

0 голосов
/ 13 января 2019

Использование DateFormatter dateFormat(fromTemplate:options:locale:).

let userFormat = DateFormatter.dateFormat(fromTemplate: "yyyyMMdd", options: 0, locale: Locale.current)

В США это возвращает MM/dd/yyyy. В Германии это дает dd.MM.yyyy.

Если вам когда-либо понадобится получить соответствующий формат времени, который также учитывает выбранный пользователем 12/24-часовой формат времени, используйте шаблон jms. j - это специальный спецификатор формата, используемый только с шаблонами, который возвращает либо h, либо H в течение часа, в зависимости от того, что подходит.


Другой возможный вариант - создать DateFormatter, установить нужные dateStyle и timeStyle, а затем прочитать свойство dateFormat:

var mydf = DateFormatter()
mydf.dateStyle = .long // set as desired
mydf.timeStyle = .full // set as desired
print(mydf.dateFormat)

Для США это дает:

ММММ д, у 'в' ч: мм: сс zzzz

Для Германии это дает:

* * Д тысячу тридцать один. ММММ ммм ЧЧ: мм: сс zzzz
...