Iphone NSDate格式问题

Iphone NSDate格式问题,iphone,ios4,nsdate,nsdateformatter,Iphone,Ios4,Nsdate,Nsdateformatter,以下是nsdate格式化程序中的代码。。。由于某些原因,dateSelected的值不正确。。。它返回的不是“2011年4月30日下午7:55”,而是2011-05-01 02:55。。。知道我做错了什么吗 NSLog响应 NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init]; [outputFormatter setDateFormat:@"h:mm a"]; objEventInsert.eventtime =

以下是nsdate格式化程序中的代码。。。由于某些原因,dateSelected的值不正确。。。它返回的不是“2011年4月30日下午7:55”,而是2011-05-01 02:55。。。知道我做错了什么吗

NSLog响应

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);
这是正确的UTC时间。您需要设置区域设置/时区以获取本地时间,即7:55

请看这些答案示例


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

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

注意:可以使用appendStringByFormat减少代码的冗余。

调用
setTimeZone:
以获取
NSDateFormatter
NSString *dateSelected = [NSString stringWithFormat:@"%@ %@",objEventInsert.eventstartdate,objEventInsert.eventtime];
NSLog(@"%@", dateSelected);