我在日期面临一个奇怪的问题。我在时间格式上获得了不同的结果。 我的代码是
formatter=[[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy/MM/dd hh:mma"];
NSDate *currentdate=[formatter dateFromString:[formatter stringFromDate:[NSDate date]]];
NSLog(@"Current Date %@",currentdate);
我在模拟器和其他设备中的输出是
当前日期2013-11-13 11:55:00 +0000
但是在一个特定的设备(Iphone 5)中:我收到的输出是
当前日期2013-11-13 11:57:00 am +0000
请帮我解决这个问题。谢谢
答案 0 :(得分:4)
如果显示不同的小时,您可能需要在设置dateFormat后设置默认时区(这只发生在ios7之后)
[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
似乎默认时区是设备所具有的时区,因此如果您没有指定默认时区,您可能会得到奇怪的结果。在ios7之前,它总是GMT。
<强>更新强>
如果格式化之后NSDate
为零,则应该使用:
[dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
我遇到墨西哥iPhone的这个问题,如果您希望用户对您的应用感到满意,我强烈建议您始终添加此代码。从IOS7开始,我总是使用两个代码片段
答案 1 :(得分:2)
您需要检查iPhone默认设置(设置 - &gt;常规 - &gt;日期和时间)中设置的“日期时间格式”。
如果在此设置中将时间格式设置为24小时,那么您将获得24小时格式的时间。
如果设置为12小时格式,那么你将获得12小时的日期时间格式。
我认为在你的iPhone5设备日期时间设置被设置为12小时格式