#ios #localization #nsstring #nsdate #nsdateformatter
#iOS #локализация #nsstring #nsdate #nsdateformatter
Вопрос:
Как мне преобразовать время NSDate
в NSString
, например, @"11:22am"
? Как мне поддерживать все локали?
Ответ №1:
Вам нужно использовать NSDateFormatter, предпочтительно используя одну из констант NSDateFormatterStyle, значение которого будет отличаться в зависимости от языка пользователя (например, в США / Великобритании / Австралии все имеют разные форматы коротких дат).
NSDateFormatter *timeFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
NSString *timeString = [timeFormatter stringFromDate:date];
Ответ №2:
Использовать для этого NSDateFormatter
:
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss zzz"];//HH:mm
NSString *strDate = [formatter stringFromDate:myDate];
Комментарии:
1. этот метод не позволит вам поддерживать разные локали.