如何在iPhone中设置MMM dd,yyyy HH:mm中的日期格式

如何在iPhone中设置MMM dd,yyyy HH:mm中的日期格式,iphone,objective-c,ios5,nsdate,nsdateformatter,Iphone,Objective C,Ios5,Nsdate,Nsdateformatter,我想用这种格式设置日期MMM-dd,yyyy-HH:mm,我已经为此编写了代码,但有一些错误我不知道 NSDate *date = [NSDate date]; [format setDateFormat:@"MMM dd, yyyy HH:mm"]; NSLog(@"My date with out format = %@",date); date = [format dateFromString:[format stringFromDate:date]]; NSLog(@"My date i

我想用这种格式设置日期MMM-dd,yyyy-HH:mm,我已经为此编写了代码,但有一些错误我不知道

NSDate *date = [NSDate date];
[format setDateFormat:@"MMM dd, yyyy HH:mm"];
NSLog(@"My date with out format = %@",date);
date = [format dateFromString:[format stringFromDate:date]];
NSLog(@"My date is = %@",date);
输出

我的日期不带格式=2012-06-22 09:53:46+0000
我的日期是=2012-06-22 09:53:00+0000

请帮助我哪里做错了


提前感谢。

您没有告诉格式化程序显示秒数,要执行此操作,请添加“HH:mm:ss


首先,
NSDate
对日期的格式一无所知。这就是
NSDateFormatter
的用武之地

date = [format dateFromString:[format stringFromDate:date]];
这里要做的是为给定格式创建一个字符串,这也将导致删除时区。然后根据该字符串创建一个新日期。由于它不再具有时区,因此将产生一个以
GMT
为时区的日期

但这仍然会导致一个
NSDate
,它保持秒数,并将默认时区设置为
GMT

无需创建新的日期对象,如果要显示日期,只需获取
stringFromDate:
方法返回的字符串即可。如果您这样做,它将起作用:

NSDate *date = [NSDate date];
[format setDateFormat:@"MMM dd, yyyy HH:mm"];
NSLog(@"My date with out format = %@",date);
NSString *dateString = [format stringFromDate:date];
NSLog(@"My date is = %@",dateString);
试试这个:

NSDateFormatter *format = [[NSDateFormatter alloc] init];
    NSDate *date = [NSDate date];
    [format setDateFormat:@"MMM dd, yyyy HH:mm:ss"];
    NSLog(@"My date with out format = %@",date);
    NSString *dateStr = [format stringFromDate:date];

    //date = [format dateFromString:[format stringFromDate:date]];
    NSLog(@"My date is = %@",dateStr);

Omer我不需要秒我只需要MMM dd,yyyy HH:mm@FaheemRajput-请编辑问题以显示您想要的内容,因为此答案使您的格式与不使用格式时的格式相同您忘记将语言环境设置为en_US_POSIX。在处理定义的日期格式时,应该始终这样做。
NSDate *date = [NSDate date];
[format setDateFormat:@"MMM dd, yyyy HH:mm"];
NSLog(@"My date with out format = %@",date);
NSString *dateString = [format stringFromDate:date];
NSLog(@"My date is = %@",dateString);
NSDateFormatter *format = [[NSDateFormatter alloc] init];
    NSDate *date = [NSDate date];
    [format setDateFormat:@"MMM dd, yyyy HH:mm:ss"];
    NSLog(@"My date with out format = %@",date);
    NSString *dateStr = [format stringFromDate:date];

    //date = [format dateFromString:[format stringFromDate:date]];
    NSLog(@"My date is = %@",dateStr);