Как отформатировать диапазон дат (с одной строкой года) в разных локалях в iOS? - PullRequest
0 голосов
/ 11 мая 2018

Строка даты на английском языке: Jan 18 - Jan 26, 2018

Неверная строка даты на корейском языке: Jan 18 - 2018 Jan 26

Что должно произойти на корейском языке: 2018 Jan 18 - Jan 26 (не совсем правильный корейский, просто ссылаясь наместоположение года. См. принятый ответ, чтобы увидеть правильный корейский формат даты)

В настоящее время это требует форматирования даты, но вы должны жестко указать, какой форматировщик даты имеет год, поэтому корейская дата не выглядитвправо.

Можно ли это сделать в Swift / Objc, не помещая строку года с обеих сторон диапазона дат?

1 Ответ

0 голосов
/ 11 мая 2018

Используйте DateIntervalFormatter:

let sd = Calendar.current.date(from: DateComponents(year: 2018, month: 1, day: 18))!
let ed = Calendar.current.date(from: DateComponents(year: 2018, month: 1, day: 26))!
let dif = DateIntervalFormatter()
dif.dateStyle = .medium
dif.timeStyle = .none
dif.locale = Locale(identifier: "en_US")
let resEN = dif.string(from: sd, to: ed)
dif.locale = Locale(identifier: "ko_KR")
let resKO = dif.string(from: sd, to: ed)

В результате:

18 - 26 января 2018
2018. 1. 18. ~ 2018. 1. 26.

Вывод не совсем то, что вы показываете в своем вопросе, но вывод подходит для указанных локалей.

...