在greift中将gregorian datepicker转换为波斯语日期选择器?

时间:2015-10-27 16:03:44

标签: ios swift uidatepicker

如何使用Swift语言将Gregorian datepicker转换为波斯语日期选择器?

func datePickerValueChanged(sender: UIDatePicker) {

    let dateFormatter = NSDateFormatter()

    dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle

    dateFormatter.timeStyle = NSDateFormatterStyle.NoStyle
    dateFormatter.dateFormat = NSCalendarIdentifierPersian

    dateOutlet.text = dateFormatter.stringFromDate(sender.date)

}

我将日期格式更改为NSCalendarIdentifierPersian但是datepicker没有任何变化?

3 个答案:

答案 0 :(得分:12)

您需要设置calendar,而不是dateFormat

dateFormatter.calendar = NSCalendar(identifier: NSCalendarIdentifierPersian)

如果您希望更改语言,还必须设置locale属性:

dateFormatter.locale = NSLocale(localeIdentifier: "fa_IR")

此外,正如对问题的评论所述,您在代码中使用的是NSDateFormatter,而不是UIDatePicker。幸运的是,答案仍然是正确的; UIDatePicker还有一个calendar属性,您可以设置它来实现此目标。

答案 1 :(得分:2)

斯威夫特3:

正如Charles A. Said DatePicker有一个日历属性,您可以使用它来拥有波斯语日期选择器:

datePicker.calendar = Calendar(identifier: Calendar.Identifier.persian)
datePicker.locale = Locale(identifier: "fa_IR")

答案 2 :(得分:1)

SwiftUI示例:

 DatePicker("", selection: self.$mySelectionDate, displayedComponents: .date)
                        .environment(\.locale, Locale.init(identifier: "fa_IR"))
                        .environment(\.calendar,Calendar(identifier: .persian))