如何将英文日期转换为阿拉伯日期 ios swift
how to convert english date to arabic date ios swift
在我的应用程序中,我正在以这种格式获取日期 =“2016-02-15 10:49:59”,但我想以这种格式显示它“الأربعاء, 9 مارس, 2016 10:33 õ" 那我该怎么做呢?
我显示了我想要的格式
检查这个
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
为了解决您的问题,请尝试使用 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
.
您可以使用 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) // الأربعاء, ٩ مارس, ٢٠١٦ ١٠:٣٣ ص
但是,我不懂阿拉伯语,所以我不能确定你上面的图片是否显示了阿拉伯语,我也不确定你想要达到什么目的;可能不是这个。
我显示了我想要的格式
检查这个
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
为了解决您的问题,请尝试使用 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
.
您可以使用 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) // الأربعاء, ٩ مارس, ٢٠١٦ ١٠:٣٣ ص
但是,我不懂阿拉伯语,所以我不能确定你上面的图片是否显示了阿拉伯语,我也不确定你想要达到什么目的;可能不是这个。