NSDate格式问题

时间:2011-05-01 03:03:17

标签: iphone ios4 nsdate nsdateformatter

以下是来自nsdate格式化程序的代码...由于某种原因,值dateSelected不正确...而不是“2011年4月30日晚上7:55”它返回2011-05-01 02:55 ...任何想法我做错了什么?

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

2 个答案:

答案 0 :(得分:1)

这是正确的UTC时间。您需要设置区域设置/时区以获取本地时间,即7:55。

参见这些答案示例

答案 1 :(得分:1)

你的问题是你再次创建一个新的NSDate,你只需通过一个字符串启动它。因此,您应该在最后一步中创建一个字符串,或者需要重用NSDateFormatter。

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

注意:可以使用appendStringByFormat使代码更简洁。