2012-03-09 2 views
0

я попытался преобразовать эту дату NSString в NSDateкак преобразовать NSString в NSDate

NSString *update_time= @"2012-03-09 14:54:30.0"; 

// convert to date 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 

[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss'.0'"]; 
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"Australia/Melbourne"]]; 
NSDate *dte = [dateFormat dateFromString:update_time ]; 
NSLog(@"Date: %@", dte); 

но я получаю Дата: (нуль)

+0

попробуйте 'yyyy' вместо' YYYY' – Novarg

ответ

2

"GMT + 4" не является допустимым название тембры. Используйте timeZoneForSecondsFromGMT: вместо:

//... 
NSTimeZone *timeZone = [NSTimeZone timeZoneForSecondsFromGMT:4 * (60 * 60)]; 
[dateFormat setTimeZone:timeZone]; 
//... 

Если вы хотите использовать timeZoneWithName:, вы можете получить список допустимых имен часовых поясов с помощью [NSTimeZone knownTimeZoneNames]. Те, у всех есть форма "Europe/Berlin" и т.д.

2
NSString *update_time= @"2012-03-09 14:54:30.0"; 

Отсутствует указатель

1

Вы пропустили указатель.

NSString * update_time= @"2012-03-09 14:54:30.0"; 

// convert to date 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 

[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss'.0'"]; 
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"GMT+4"]]; 
NSDate *dte = [dateFormat dateFromString:update_time ]; 
NSLog(@"Date: %@", dte); 
Смежные вопросы