【问题标题】:NSDate format issueNSDate 格式问题
【发布时间】:2011-08-16 07:29:02
【问题描述】:

这是来自 nsdate 格式化程序的代码...由于某种原因,值 dateSelected 不正确...而不是“April 30 2011 7:55PM”它返回 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

【问题讨论】:

    标签: iphone ios4 nsdate nsdateformatter


    【解决方案1】:

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

    查看这些答案示例

    【讨论】:

    • 致电setTimeZone: 获取您的NSDateFormatter
    【解决方案2】:

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

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

    注意:可以使用 appendStringByFormat 让您的代码不那么冗长。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多