在我的应用中,我想允许用户选择适合他们显示日期的首选项的各种日期格式。但是,我不想定义固定的日期格式,因此我会根据当前的区域设置为不同的组件获取最合适的格式。我理解不同的本地人可能会使用不同的符号来分隔组件,但我想知道是否可以设置这些分隔符号,同时保留适合该语言环境的组件的正确顺序。
例如,在美国,以下代码返回" 09/06 / 2014"但是在英国,它将是" 06/09 / 2014",我想保留该订单,但用短划线或空格替换斜线。但是,我不相信我可以简单地解析返回的字符串并替换' /'与其他角色一起使用,因为在某些地区,他们可能不会使用' /' (我不确定,但似乎很可能)。
NSDateFormatter.dateFormatFromTemplate("MMddyyyy", options: 0, locale: NSLocale.currentLocale())
是否可以在为当前区域设置获取最合适的格式的同时更改日期组件分隔符?
答案 0 :(得分:1)
我浏览了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)
我很高兴能找到更好的解决方案。