NSString with date: уменьшить размер даты - PullRequest
1 голос
/ 07 февраля 2012

У меня есть строка NSString * Mon Feb 06 20:02:17 +0000 2012. Я хочу написать это более коротким способом, возможно, как: DD-MM-YY, HH:MM. Я думаю, что, может быть, я могу преобразовать его в NSDate и снова в более короткую строку NSString, но я не знаю, как преобразовать этот странный формат даты в NSDate.

Если вам нужна дополнительная информация, спросите меня. Спасибо!

Ответы [ 3 ]

3 голосов
/ 07 февраля 2012

Есть аналогичные вопросы и ответы в StackOverflow и учебное пособие, которое может вам помочь:

Учебное пособие: http://iosdevelopertips.com/cocoa/date-formatters-examples-take-3.html

Подобные вопросы:

РЕДАКТИРОВАТЬ

NSString *dateStr = @"20081122"; 

// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyyMMdd"];
NSDate *date = [dateFormat dateFromString:dateStr];  

// Convert date object to desired output format
[dateFormat setDateFormat:@"EEEE MMMM d, YYYY"];
dateStr = [dateFormat stringFromDate:date];
3 голосов
/ 07 февраля 2012

Вам нужно использовать NSDateFormatter, чтобы указать NSDate формат, в котором находится исходная дата, и формат, в котором вы хотите ее использовать, затем вы можете выполнить конвертацию между ними следующим образом:

NSString *oldDate = @"Mon Feb 06 20:02:17 +0000 2012";
NSString *oldFormat = @"EEE MMM dd HH:mm:ss ZZ yyyy";

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:oldFormat];

NSDate *date = [dateFormatter dateFromString:sourceString];

NSString *newFormat = @"dd-MM-yy, HH:mm";

[dateFormatter setDateFormat:newFormat];
NSString *newDate = [dateFormatter stringFromDate:date];
1 голос
/ 07 февраля 2012

Попробуйте с помощью NSDateFormatter .

. Вы можете преобразовать в NSDate, используя один из его методов:

- (NSDate *)dateFromString:(NSString *)string

, а затем преобразовать его во что угодно, используя NSDateFormatter.

Редактировать: На самом деле NSDate имеет метод класса, так что вы также можете проверить это:

+ (id)dateWithString:(NSString *)aString
...