Nsdateformatter возвращает мне день на языке выбранного телефона. Может ли он вернуть мне только английский все время?
Я использую dateformatter, чтобы получить дни и время в моем приложении. Но я сталкиваюсь с проблемой, когда я изменяю язык телефона. Форматирование даты возвращает мне день и время выбранного языка телефона, из-за чего мое приложение вылетает, так как мы не поддерживаем несколько языков.
Пожалуйста, найдите фрагмент кода ниже:
NSDate *date=[NSDate date];
NSDateFormatter *objTimeFotmatter=[[NSDateFormatter alloc]init];
[objTimeFotmatter setDateFormat:@"HH:mm"];
NSDateFormatter *objDayFotmatter=[[NSDateFormatter alloc]init];
[objDayFotmatter setDateFormat:@"EEEE"];
NSString *objTime=[objTimeFotmatter stringFromDate:date];
NSString *objDay=[objDayFotmatter stringFromDate:date];
NSLog(@"objTime=%@",objTime);
NSLog(@"objDay=%@",objDay);
Когда я выбрал язык телефона как Гуджрати (Индия), вывод, который я вижу, используя nslog, используя это, выглядит следующим образом:
2011-11-24 11:23:20.221 Belkin_Plugin[1110:707] objTime=૧૧:૨૩
2011-11-24 11:23:20.227 Belkin_Plugin[1110:707] objDay=ગુરુવાર
Ответы
Ответ 1
Добавьте к строкам даты следующие строки.
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormatter setLocale:usLocale];
В вашем случае
NSDateFormatter *objTimeFotmatter=[[NSDateFormatter alloc]init];
[objTimeFotmatter setDateFormat:@"HH:mm"];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[objTimeFotmatter setLocale:usLocale];
Аналогично для всех dateformatters.
Ответ 2
Swift
let dateFormatter = DateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US") as Locale!
dateFormatter.dateFormat = "dd-MM-yyyy HH:mm:ss"
let resultsDate = dateFormatter.string(from: date)
Ответ 3
Попробуйте с этим кодом:
NSDate *date=[NSDate date];
NSDateFormatter *objTimeFotmatter=[[NSDateFormatter alloc]init];
[objTimeFotmatter setDateFormat:@"HH:mm"];
[objTimeFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]
autorelease]];
NSDateFormatter *objDayFotmatter=[[NSDateFormatter alloc]init];
[objDayFotmatter setDateFormat:@"EEEE"];
[objDayFotmatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]
autorelease]];
NSString *objTime=[objTimeFotmatter stringFromDate:date];
NSString *objDay=[objDayFotmatter stringFromDate:date];
[objDayFotmatter release];
[objTimeFormatter release];
NSLog(@"objTime=%@",objTime);
NSLog(@"objDay=%@",objDay);