Преобразовать `NSDate` в `NSString`, например, @»11:22am»?

#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. этот метод не позволит вам поддерживать разные локали.