如何使用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没有任何变化?
答案 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))