我想以这种格式设置日期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
请在我做错的地方帮助我。
提前致谢。
答案 0 :(得分:4)
Firstoff,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);
答案 1 :(得分:1)
你没有告诉格式化师显示秒数,为此添加“HH:mm: ss ”
NSDate *date = [NSDate date];
[format setDateFormat:@"MMM dd, yyyy HH:mm:ss"];
NSLog(@"My date with out format = %@",date);
date = [format dateFromString:[format stringFromDate:date]];
NSLog(@"My date is = %@",date);
答案 2 :(得分:1)
试试这个:
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);
答案 3 :(得分:0)
[format setDateFormat:@"YYYY-dd-MM HH:mm:ss z"];