Как перевести арабскую дату в английскую дату

У меня есть проблема в моем приложении. Я получаю дату в этом формате:

"الإثنين 2015.5.5 - 16:16 مساء بتوقيت ابوظبي"

Как это показано ниже

Скриншот

Из API, но я хочу преобразовать его в NSDate Английский формат.

Я нашел этот код @dfri. Он конвертирует с английского на арабский, но я не знаю, мой API dateFormat,

// 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 ص
}

Как я могу это сделать?

2 ответа

Решение

Для более удобного преобразования я думаю, что лучше удалить дополнительный текст, поэтому я отфильтровал строку и сохранил только нужные числа.

вот моя попытка:

var dateString = "الإثنين 2015.5.5 - 16:16 مساء  بتوقيت ابوظبي"

dateString = dateString.trimmingCharacters(in: CharacterSet(charactersIn: "01234567890.-:").inverted)

var formatter = DateFormatter()
formatter.dateFormat = "yyyy.MM.dd - HH:mm"

let date = formatter.date(from: dateString)

print(date)

//"May 5, 2015 at 4:16 PM"

Если ваш часовой пояс даты совпадает с текущим часовым поясом пользователя, вы можете использовать NSDataDetector для определения даты в вашей строке:

let ds =  "الإثنين 2015.5.5 - 16:16 مساء بتوقيت ابوظبي"

do {
    if let date = try NSDataDetector(types: NSTextCheckingResult.CheckingType.date.rawValue).matches(in: ds, range: NSRange(location: 0, length: ds.utf16.count)).flatMap({$0.date}).first {
        print(date.description(with: .current))  // "Wednesday, February 21, 2018 at 4:16:00 PM Brasilia Standard Time\n"
    }
}
Другие вопросы по тегам