Я пытаюсь получить дату из строки, используя 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)
}
Пожалуйста, дайте мне знать, если вы нашли решение для этого.