如何将英语日期转换为阿拉伯语日期ios swift

时间:2016-03-10 08:11:11

标签: ios swift localization calendar arabic

enter image description here在我的应用程序中我以这种格式获取日期=“2016-02-15 10:49:59”我想以这种格式显示它“الأربعاء,9مارس,2016 10:33 ص“所以我该怎么做?

我正在显示我想要的格式

3 个答案:

答案 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 ص"

要配置正确的样式集,您的dateStyletimeStyle也会设置NSLocale