我正在尝试使用以下代码的NSDateFormatter。这是我的DetailViewController.m中的代码。我正在使用Xcode 4.2与故事板和核心数据。我在这里搜索了NSDateFormatter的其他主题,看起来好像我正确地做了这个但是结果返回null。
- (void)configureView
{
// Update the user interface for the detail item.
if (self.detailItem) {
// Format Date to MMM D, YYYY H:MM:SS AM/PM
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
NSString *sessDate = [[self.detailItem sessionDate] description];
NSDate *date = [dateFormatter dateFromString:sessDate];
NSString *formattedDate = [dateFormatter stringFromDate:date];
self.sessionDate.text = formattedDate;
NSLog(@"sessDate = %@",sessDate);
NSLog(@"date = %@",date);
NSLog(@"formattedDate = %@",formattedDate);
}
}
NSLog结果:
2012-02-10 17:18:17.781 ClickIt[332:10103] sessDate = 2012-02-09 17:11:33 +0000
2012-02-10 17:18:17.782 ClickIt[332:10103] date = (null)
2012-02-10 17:18:17.782 ClickIt[332:10103] formattedDate = (null)
之前我使用过NSDateFormatter并且工作正常但是我很难理解为什么date变量返回null。关于我做错了什么的想法?
谢谢!
// Format Date to MMM D, YYYY H:MM:SS AM/PM
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];
NSString *sessDate = [[self.detailItem sessionDate] description];
NSDate *date = [dateFormatter dateFromString:sessDate];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
NSString *formattedDate = [dateFormatter stringFromDate:date];
self.sessionDate.text = formattedDate;
答案 0 :(得分:1)
我认为NSDateFormatterMediumStyle对应于这样的东西 - 1937年11月23日。因此你得到零值。
你能试试吗?
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];