如何在iOS中的不同语言环境中格式化日期范围(只有一年字符串)?

ter*_*dyl 1 localization date nsdateformatter ios swift

英文日期字符串: Jan 18 - Jan 26, 2018

韩语日期字符串不正确: Jan 18 - 2018 Jan 26

在韩语中会发生什么:( 2018 Jan 18 - Jan 26不完全正确的韩语,只是指年份的位置.请参阅接受的答案以查看正确的韩语日期格式)

现在这需要格式化日期,但您必须硬编码哪个日期格式化程序具有年份,因此朝鲜日期看起来不正确.

这可以在Swift/Objc中完成而不只是将年份字符串放在日期范围的两边吗?

rma*_*ddy 6

使用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)
Run Code Online (Sandbox Code Playgroud)

这导致:

2018年
1 月18日至26日2018. 1. 18.~2018.1. 26.

输出与您在问题中显示的不完全相同,但输出适用于给定的区域设置.