2012-03-09 110 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 2012-03-09 20:02:04

回答

2

“GMT + 4” 是不是有效timzone名称。使用timeZoneForSecondsFromGMT:代替:

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

如果你想使用timeZoneWithName:,你可以使用[NSTimeZone knownTimeZoneNames]有效时区名称的列表。这些都具有形式“欧洲/柏林”等

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);