NSDate格式问题

这里是从nsdate格式化程序的代码...出于某种原因,dateSelected的值是不正确的...而不是“2011年4月30日7:55 PM”它返回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

这是正确的UTC时间。 您需要设置语言环境/时区以获取当地时间,例如7:55。

看到这些答案的例子

  • 在两个不同设备上与NSDateFormatter的行为不一致
  • NSDate dateFromString,如何解析'周围'UTC,GMT和用户区域设置?

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

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

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

    链接地址: http://www.djcxy.com/p/35163.html

    上一篇: NSDate format issue

    下一篇: NSDate from NSString when time is in 24 hr format