2011-05-01 110 views
0

以下是來自nsdate格式化程序的代碼...出於某種原因dateSelected值不正確...而不是「2011年4月30日7:55 PM」它返回2011-05-01 02:55 ..任何想法我做錯了什麼?NSDate格式問題

NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init]; 
[outputFormatter setDateFormat:@"h:mm a"]; 
objEventInsert.eventtime = [outputFormatter stringFromDate:self.datePicker.date]; 
NSLog(@"%@",objEventInsert.eventtime); 
NSDateFormatter *dateForm = [[NSDateFormatter alloc] init]; 
[dateForm setDateFormat:@"LLLL d y h:mm a"]; 
NSDate *dateSelected = [dateForm dateFromString:[NSString stringWithFormat:@"%@ %@",objEventInsert.eventstartdate,objEventInsert.eventtime]]; 
NSLog(@"%@",objEventInsert.eventstartdate); 
objEventInsert.date = dateSelected; 
NSLog(@"%@",objEventInsert.date);

的NSLog響應...

2011-04-30 19:54:14.264 APP[24017:207] 7:55 PM 
2011-04-30 19:54:16.216 APP[24017:207] April 30 2011 
2011-04-30 19:54:17.654 APP[24017:207] 2011-05-01 02:55:00 +0000 

回答

1

你的問題是,你再創建一個新的NSDate,你只要啓動它通過一個字符串。所以要麼你應該在你最後一步創建一個字符串,或者你需要重用NSDateFormatter。

NSString *dateSelected = [NSString stringWithFormat:@"%@ %@",objEventInsert.eventstartdate,objEventInsert.eventtime]; 
NSLog(@"%@", dateSelected); 

注意:可以使用appendStringByFormat來減少代碼的冗長。