2012-04-08 4 views
4

У меня есть NSString, которая является датой и временем в этом коде: «YYYY-MM-DD HH: mm: SS», и я хочу использовать ее как немецкий стиль: «DD.MM. ГГГ ЧЧ: мм: ДД "Формат Datetime/string в IOS

Как решить?

+1

Вам необходимо использовать [NSDateFormatter] (https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/ Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html), у google есть много информации по этой теме. – GregularExpressions

ответ

15

Пример преобразования одной строки даты в другой формат:

NSString * currentDateString = @ "04.08.2012 8:16:00";

NSLog(@"currentDateString: %@", currentDateString); 

NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init]; 

[dateFormater setDateFormat:@"MM-DD-yyyy HH:mm:ss"]; 
NSDate *currentDate = [dateFormater dateFromString:currentDateString]; 
NSLog(@"currentDate: %@", currentDate); 

[dateFormater setDateFormat:@"yyyy-MM-DD HH:mm:ss"]; 
NSString *convertedDateString = [dateFormater stringFromDate:currentDate]; 
NSLog(@"convertedDateString: %@", convertedDateString); 

[dateFormater setDateFormat:@"DD.MM.yyy HH:mm:DD"]; 
NSString *germanDateString = [dateFormater stringFromDate:currentDate]; 
NSLog(@"germanDateString: %@", germanDateString); 

NSLog выход:
currentDateString: 04.08.2012 8:16:00
CurrentDate: 2012-04-01 12:16:00 +0000
convertedDateString: 2012-04-92 08 : 16: 00
germanDateString: 92.04.2012 08:16:92

+0

Почему месяц меняется с 04 на 01? – nithinreddy

+0

Apple Bug ID # 12993321 – zaph

+0

О, это исправлено или исправлено? Есть идеи? Что мы сделаем для решения этой проблемы? – nithinreddy

3
NSString* input = @"2012-04-08 13:05:49"; 

NSString* year = [input substringWithRange: NSMakeRange(0, 4)]; 
NSString* month = [input substringWithRange: NSMakeRange(5, 2)]; 
NSString* day = [input substringWithRange: NSMakeRange(8, 2)]; 
NSString* time = [input substringWithRange: NSMakeRange(11, 8)]; 

NSString* output = [NSString stringWithFormat:@"%@.%@.%@ %@",day,month,year,time]; 
+1

Было бы намного лучше ИМО разобрать его и отформатировать, а не просто перемещать персонажей. Помимо всего прочего, он будет проверять правильность значения. –

1

Перевести его в объект NSDate с использованием NSDateFormatter, а затем использовать форматтер для экспорта строки. Следуйте документации о dateFromString & stringFromDate.

Смежные вопросы