删除和重新格式化NSDate不起作用?

时间:2016-02-11 05:52:42

标签: ios objective-c nsdate nsdateformatter

我试图将此NSdate(2016-02-11 01:00:00 +0000)重新格式化为此(2016年2月11日)。

我使用下面的代码并返回null。

//newDate format is 2016-02-11 01:00:00 +0000
NSString *dateString = [[self dateFormatter] stringFromDate:newDate];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:dateString];

// Convert date object into desired format
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSString *newDateString = [dateFormatter stringFromDate:date];
NSLog(@"people%@",newDateString); //printing null

请帮助。

3 个答案:

答案 0 :(得分:0)

尝试这个

NSString *myString = @"2016-02-11 11:29:04";
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *yourDate = [dateFormatter dateFromString:myString];
dateFormatter.dateFormat = @"dd-MMM-yyyy";
NSLog(@"%@",[dateFormatter stringFromDate:yourDate]);

答案 1 :(得分:0)

最简单的方式

NSString *strDateFor = @"2016-02-11 01:00:00 +0000";
NSDateFormatter *dateformate=[[NSDateFormatter alloc]init];
[dateformate setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZZ"];
NSDate *date = [dateformate dateFromString:strDateFor];
NSLog(@"date : %@",date);
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"dd-MM-yyyy"];
NSString *strDate = [dateFormat stringFromDate:date];
NSLog(@"The strDate is - %@", strDate);

控制台输出

date : 2016-02-11 01:00:00 +0000
The strDate is - 11-02-2016

答案 2 :(得分:-1)

+0000它是时区定义。您应该使用Z

解析它

试试这个

[dateformat setDateFormat:@"yyyy-MM-dd HH:mm:ssZZZZ"];

否则,如果您的日期是当前日期使用

[dateformat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];