我遇到问题,从DatePicker中选择后,我的标签显示错误的月份名称。
代码:
let myDatePicker: UIDatePicker = {
let pv = UIDatePicker()
pv.datePickerMode = .date
pv.locale = Locale(identifier: "de_DE")
pv.addTarget(self, action: #selector(datePickerValueChanged), for: .valueChanged)
return pv
}()
@objc func datePickerValueChanged(datePicker: UIDatePicker) {
let format = "dd MMM, yyyy"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
let dateValue = dateFormatter.string(from: datePicker.date)
myLabel.text = dateValue
}
let myLabel: UILabel = {
let label = UILabel()
return label
}()
P.S我还有一个问题,如何使用区域设置自动设置DatePicker中的月份语言?
我尝试过(在myDatePicker内):pv.locale = .current
答案 0 :(得分:0)
第一个问题:
你需要"本地化"你的dateFormatter,使用
dateFormatter.locale = datePicker.locale
在datePickerValueChanged
第二个问题:
您想要检索从iPhone设置中检索到的正确月份名称
使用Locale.autoupdatingCurrent
代替Locale(identifier: "de_DE")
。这将获得用户首选的当前区域设置,并自动更新。