我正在创建一个需要在10.4及更高版本上运行的应用。拥有格式正确的日期字符串至关重要。当我在10.5中运行我的程序时,一切都很好;我得到的日期正是我想要的:
Jul 13, 2010 16
16是没有分钟的小时,我特别需要。然后,当我在10.4中运行时,我得到了这个:
07/13/10
我生成此日期的代码如下所示:
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMM dd, yyyy HH"];
NSDate *newNow = [[NSDate alloc] init];
NSString *dateString = [format stringFromDate:newNow];
在阅读了一些相关文档(下面的链接)后,似乎10.4有一种独特的格式化方式,与10.3,10.5和10.6不同。引用链接:
“格式字符串使用Unicode标准中的格式模式(此参考适用于Mac OS X v10.5版本tr35-6;适用于Mac OS X v10.4版本使用版本tr35-4)。”
我已经阅读了文档,似乎我的Unicode格式没问题,但我仍然得到了这个奇怪的结果。
任何帮助?
答案 0 :(得分:0)
我认为您需要使用NSDateFormatterBehavior10_4
或+[NSDateFormatter setDefaultFormatterBehavior:]
将格式化程序行为设置为-[NSDateFormatter setFormatterBehavior:]
。
编辑:我的推理基于NSDateFormatter概述中的评论:
默认情况下,在Mac OS X v10.4上 NSDateFormatter的实例有 与Mac OS X上的行为相同 版本10.0到10.3。在Mac OS X上 v10.5及更高版本,NSDateFormatter 默认为10.4+行为。