答案 0 :(得分:13)
您可以使用NSDateFormatter
和区域设置"ar_DZ"
,并使用自定义格式规范来满足您的需求:"EEEE, d, MMMM, yyyy HH:mm a"
。
// input date in given format (as string)
let inputDateAsString = "2016-03-09 10:33:59"
// initialize formatter and set input date format
var formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
// read input date string as NSDate instance
if let date = formatter.dateFromString(inputDateAsString) {
// set locale to "ar_DZ" and format as per your specifications
formatter.locale = NSLocale(localeIdentifier: "ar_DZ")
formatter.dateFormat = "EEEE, d, MMMM, yyyy HH:mm a"
let outputDate = formatter.stringFromDate(date)
print(outputDate) // الأربعاء, 9 مارس, 2016 10:33 ص
}
请注意,上述内容使用默认格里历日历(因此未在伊斯兰日历中翻译2016年至1437年(/ 1438〜2016年10月))。
(关于以下评论的编辑补充)
如果您将localeIdentifier
从"ar_DZ"
更改为"ar"
,则数字值也会以阿拉伯字符编写:
print(outputDate) // الأربعاء, ٩ مارس, ٢٠١٦ ١٠:٣٣ ص
但是,我不懂阿拉伯语,所以我无法说出上面的图片是否表明了这一点,而且我不再确定你想要实现的目标;可能这不是它。
答案 1 :(得分:4)
检查
let morningOfChristmasComponents = NSDateComponents()
morningOfChristmasComponents.year = 2014
morningOfChristmasComponents.month = 12
morningOfChristmasComponents.day = 25
morningOfChristmasComponents.hour = 7
morningOfChristmasComponents.minute = 0
morningOfChristmasComponents.second = 0
let morningOfChristmas = NSCalendar.currentCalendar().dateFromComponents(morningOfChristmasComponents)!
/***** NSDateFormatter Part *****/
let formatter = NSDateFormatter()
formatter.dateStyle = NSDateFormatterStyle.LongStyle
formatter.timeStyle = .MediumStyle
formatter.locale = NSLocale(localeIdentifier: "ar")
let dateString = formatter.stringFromDate(morningOfChristmas)
txtMarks.text = dateString
答案 2 :(得分:3)
要解决您的问题,请尝试使用带有NSCalendar样式的图例方式:
var today = NSDate()
let islamic = NSCalendar(identifier:NSCalendarIdentifierIslamicCivil)!
let formatter = NSDateFormatter()
formatter.dateStyle = .LongStyle
formatter.timeStyle = .MediumStyle
formatter.calendar = islamic
formatter.locale = NSLocale(localeIdentifier: "ar_DZ")
formatter.stringFromDate(today) // "30 جمادى الأولى، 1437 هـ، 11:22:10 ص"
要配置正确的样式集,您的dateStyle
和timeStyle
也会设置NSLocale
。