如何用其他符号替换日期组件分隔符



在我的应用程序中,我希望允许用户选择适合他们偏好的各种日期格式来显示日期。但是,我不想定义固定的日期格式,因此我将根据当前区域设置为不同组件获得最合适的格式。我知道不同的局部环境可能会使用不同的符号来分隔组件,但是我想知道是否有可能在设置这些分隔符号的同时保留适合该区域环境的组件的正确顺序。

例如,在美国,下面的代码返回"09/06/2014",但在英国,它将是"06/09/2014",我想保留这个顺序,但用破折号或空格替换斜杠。然而,我不相信我可以简单地解析返回的字符串并用其他字符替换'/'的实例,因为在某些地区,他们可能不使用'/'(我不确定,但似乎很可能)。

NSDateFormatter.dateFormatFromTemplate("MMddyyyy", options: 0, locale: NSLocale.currentLocale())

是否有可能改变日期组件分隔符字符时,同时获得最适合当前语言环境的格式?

我浏览了iPad上的所有语言,并查看了短日期格式。我发现所有语言都使用这三种分隔符之一:/。-

因此,为了在保留格式的同时允许自定义分隔符,我只是用自定义字符替换那些字符。例如:

dateFormatter.dateFormat = NSDateFormatter.dateFormatFromTemplate("MMddyyyy", options: 0, locale: NSLocale.currentLocale())
cell.dateLabel.text = dateFormatter.stringFromDate(NSDate())
cell.dateLabel.text = cell.dateLabel.text.stringByReplacingOccurrencesOfString("/", withString: " ", options: nil, range: nil)
cell.dateLabel.text = cell.dateLabel.text.stringByReplacingOccurrencesOfString(".", withString: " ", options: nil, range: nil)
cell.dateLabel.text = cell.dateLabel.text.stringByReplacingOccurrencesOfString("-", withString: " ", options: nil, range: nil)

我希望能找到更好的解决办法。

最新更新