“setDateFormat”不适用于GMT?

时间:2011-08-09 12:06:21

标签: objective-c nsdateformatter

我想知道为什么当我使用不同的时区时,我的setDateFormat不起作用,这里GMT:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];

[dateFormatter setDateFormat:@"dd-MM-YYYY"]; //this doesn't work, nothing appears
//[dateFormatter setDateStyle:NSDateFormatterMediumStyle]; //this works

但是如果我使用默认的timeZone,它可以工作:

NSDateFormatter *Dateformat = [[NSDateFormatter alloc]init];
[Dateformat setDateFormat:@"dd-MM-YYYY HH:mm:ss"]; //this works

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

你是否曾尝试使用这个dateFormatter来为NSLog一个字符串,它为我做了一个字符串...当我创建一个字符串时 -

NSString *dateStr = [dateFormatter stringFromDate:[NSDate date]];

NSLog(@"%@",dateStr);

它给我这个 -

09-08-2011

答案 1 :(得分:0)

另外,您应该使用:[dateFormatter setDateFormat:@“dd-MM-yyyy”]而不是[dateFormatter setDateFormat:@“dd-MM-YYYY”]。 根据苹果文档,使用YYYY是一个常见的错误。它返回一周中年份的年份数(根据ISO周编号方案)。这可能是一年。小写yyyy通常是正确的版本。 请参阅:iphone Get current year as string (Anna Karenina的评论)

相关问题