myLabel显示错误的名称(UIDatePicker)

时间:2018-02-12 22:45:18

标签: swift label uidatepicker

我遇到问题,从DatePicker中选择后,我的标签显示错误的月份名称。

img app

代码:

    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

1 个答案:

答案 0 :(得分:0)

第一个问题:

你需要"本地化"你的dateFormatter,使用

dateFormatter.locale = datePicker.locale

datePickerValueChanged

第二个问题:

您想要检索从iPhone设置中检索到的正确月份名称

使用Locale.autoupdatingCurrent代替Locale(identifier: "de_DE") 。这将获得用户首选的当前区域设置,并自动更新。