iOS目标C:日期格式返回nil

时间:2016-12-06 07:43:08

标签: ios objective-c nsdate nsdateformatter

在我的iOS application(Objective C)我在数据库中添加日期(2016年11月29日),格式如下:

2016-11-29 04:08:00 PM

在显示期间,我想以下列格式显示:

11/29/2016 04:08:00 PM

为此,我添加了像

这样的格式
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];
NSDate *date1  = [dateFormatter dateFromString: StartDateTime];
//here StartDateTime = 2016-11-29 04:08:00 PM

// Convert to new Date Format with /
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSString *newDate = [dateFormatter stringFromDate:date1];

但此处newDate会返回nil

如何更改日期格式?请建议我。

谢谢。

1 个答案:

答案 0 :(得分:0)

我已尝试使用以下更改代码:

NSString *StartDateTime = @"2016-11-29 04:08:00 PM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];
NSDate *date1  = [dateFormatter dateFromString: StartDateTime];
//here StartDateTime = 2016-11-29 04:08:00 PM

// Convert to new Date Format with /
NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
[dateFormatter1 setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSString *newDate = [dateFormatter1 stringFromDate:date1];
NSLog(@"%@",newDate);

在我的代码中,我添加了一个新的NSDateFormatter对象(例如上面的示例dateFormatter1),其中包含新的分配和新的日期格式。
你会这样得到答案 每当您想要更改 DateTime格式时,每次都必须创建NSDateFormatter新实例

即使尝试此选项后,如果您没有获得所需的结果,请尝试在设备中运行代码,而不是在模拟器中运行。因为模拟器可能不会一直返回准确的结果,尤其是日期和时间