Как мне представить это с датой для «дд МММ гггг», означает «11 июня 2019 года»? - PullRequest
0 голосов
/ 13 июня 2019

У меня есть строка с датой вроде этого "11 июня 2019 16:35:21".Когда я пытаюсь преобразовать строку в NSDate, она возвращает nil.

NSString str =@"11 June, 2019 16:35:21";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat: @"dd MMM yyyy"];
NSDate *date = [formatter dateFromString:str];
NSString *string = [[formatter stringFromDate:date] uppercaseString];

Есть ли другой способ преобразовать ее?Или где я делаю не так?

Ответы [ 3 ]

2 голосов
/ 13 июня 2019

использовать формат даты как

 NSString str =@"11 June, 2019 16:35:21";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] 
                 initWithLocaleIdentifier:@"en_US_POSIX"];
[formatter setLocale:locale];
 // input dateformat      @"11 June, 2019 16:35:21";
[formatter setDateFormat: @"dd MMMM, yyyy HH:mm:ss"];
NSDate *date = [formatter dateFromString:str];
// output dateformat for e.g @"11 Jun 2019 
   [formatter setDateFormat: @"dd MMM yyyy"];
NSString *string = [[formatter stringFromDate:date] uppercaseString];
0 голосов
/ 13 июня 2019

NSDateFormatter использует технический стандарт Unicode.

этот сайт имеет отличную документацию: Date_Format_Patterns

например. «11 июня 2019 16:35:21» можно проанализировать с помощью:

[dateFormatter setDateFormat:@"dd MMMM, yyyy HH:mm:ss"]
0 голосов
/ 13 июня 2019

Картик прав, во-первых, вы должны преобразовать строку даты с форматом @ "dd MMMM, гггг ЧЧ: мм: сс" в NSDate, а затем преобразовать ее в желаемый формат @ "дд МММ гггг". Надеюсь, что следующий код будет работать.

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] 
             initWithLocaleIdentifier:@"en_US_POSIX"];
[formatter setLocale:locale];
[formatter setDateFormat: @"dd MMMM, yyyy HH:mm:ss"];

NSString *str = @"11 June, 2019 16:35:21";
NSDate *date = [formatter dateFromString:str];
formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat: @"dd MMM yyyy"];
NSString *string = [[formatter stringFromDate:date] uppercaseString];
...