Конвертировать NSString в чанки NSString с форматом даты - PullRequest
0 голосов
/ 16 февраля 2010

Это может быть просто. Я искал, пока не нашел.

Как преобразовать строку NSString @ "20100216190205" в строку NSString @ "гггг-мм-дд ЧЧ: мм: сс"

т.е.: @ "2010-02-16 19:02:05"

EDIT: Я хотел бы избежать использования NSDateFormatter, чтобы быть более универсальным, для других ситуаций.

Ответы [ 3 ]

2 голосов
/ 16 февраля 2010

Вы можете извлечь каждую подстроку, преобразовать их в целые числа (-intValue), а затем использовать NSDateComponents для преобразования их в дату. И это гораздо более хлопотно, чем использование NSDateFormatter.

В вашем случае формат NSDateFormatter должен быть установлен на yyyyMMddHHmmss перед вызовом -dateFromString:, т.е.

[formatter setDateFormat:@"yyyyMMddHHmmss"];
NSDate *date = [formatter dateFromString:@"20100216190205"];
....
1 голос
/ 16 февраля 2010

Чисто как упражнение при написании кода:

NSString* digits = @"20100216190205"; // this is probably a parameter somewhere
NSMutableString* formatted = [digits mutableCopy];
[formatted insertString:@":" atIndex:12];
[formatted insertString:@":" atIndex:10];
[formatted insertString:@" " atIndex:8];
[formatted insertString:@"-" atIndex:6];
[formatted insertString:@"-" atIndex:4];
NSLog(@"original string: %@ -> formatted: %@", digits, formatted);

Но я согласен: не волнуйтесь, используйте для этого форматировщик даты.

1 голос
/ 16 февраля 2010

Вам потребуется установить формат formatter в yyyyMMddHHmmss, чтобы проанализировать строку, имеющуюся в вашем примере.Вам нужно будет либо создать новый форматер, либо изменить формат исходного форматера, чтобы включить более визуально привлекательный формат (@"yyyy-MM-dd HH:mm:ss").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...