Получение даты из строки в формате ЧЧ: мм время не работает для японского языка и региона в быстром - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь получить дату из строки, используя DateFormatter ().Мой телефон настроен на регион Япония, язык на японский и время до 12 часов.Мое приложение настроено на 24-часовой формат, так что пользователь может выбрать время из пользовательского средства выбора в 24-часовом формате.Строка даты: «11 3 月, 2019 15:35».Форматирование даты: «МММ дд, гггг ЧЧ: мм».Но это не работает и возвращает ноль всегда.

Согласно ошибка iOS 10?NSDate описание часа с регионом Японии и 24-часовым временем отключения Если я использую «MMM dd, yyyy KK: mm» в качестве формата даты, то это работает, только если время в строке ниже 12:00.Вот мой код ниже.

static func dateFrom(string: String, timeString: String) -> Date? {

    let dateFormatter = DateFormatter()
    dateFormatter.timeStyle = DateFormatter.Style.short
    dateFormatter.timeZone = NSTimeZone.local
    dateFormatter.locale = NSLocale.current

    /// Check time format
    var timeFormat = "KK:mm"
    if timeString.containsIgnoringCase(find: AppConstants.am.localizedStringWith()) || timeString.containsIgnoringCase(find: AppConstants.pm.localizedStringWith()) {
        timeFormat =  "h:mm a"
    }
    /// Check date for MMDD format
    dateFormatter.dateFormat = "MMM dd, yyyy \(timeFormat)"
    if let date = dateFormatter.date(from: string) {
        return date
    }
    /// Check date for DDMM format
    dateFormatter.dateFormat = "dd MMM, yyyy \(timeFormat)"
    if let date = dateFormatter.date(from: string) {
        return date
    }

    return dateFormatter.date(from: string)
}

Пожалуйста, дайте мне знать, если вы нашли решение для этого.

1 Ответ

0 голосов
/ 11 марта 2019

Попробуйте установить календарь в вашем устройстве форматирования даты:

dateFormatter.calendar = .gregorian
...