如何将英文日期转换为阿拉伯日期 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 ص"

要配置正确的样式设置你的 dateStyletimeStyle 还要设置你的 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) // الأربعاء, ٩ مارس, ٢٠١٦ ١٠:٣٣ ص

但是,我不懂阿拉伯语,所以我不能确定你上面的图片是否显示了阿拉伯语,我也不确定你想要达到什么目的;可能不是这个。