Objective c 版本10.4和10.5之间的NSDateFormatter问题
我正在创建一个需要在10.4及以上版本上运行的应用程序。具有格式正确的日期字符串是至关重要的。当我在10.5调试中运行我的程序时,一切都很好;我得到的日期正是我想要的:Objective c 版本10.4和10.5之间的NSDateFormatter问题,objective-c,cocoa,macos,date,Objective C,Cocoa,Macos,Date,我正在创建一个需要在10.4及以上版本上运行的应用程序。具有格式正确的日期字符串是至关重要的。当我在10.5调试中运行我的程序时,一切都很好;我得到的日期正是我想要的: Jul 13, 2010 16 16是一个小时,没有分钟,这是我特别需要的。然后,当我在10.4中运行它时,我得到: 07/13/10 生成此日期的代码如下所示: NSDateFormatter *format = [[NSDateFormatter alloc] init]; [format setDateF
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格式还可以,但是我仍然得到了这个奇怪的结果
有什么帮助吗
我认为您需要使用
+[NSDateFormatter setDefaultFormatterBehavior:
或-[NSDateFormatter setFormatterBehavior:
将格式化程序行为设置为nsdateformatterbehavior:
编辑:我的推理基于NSDateFormatter概述中的评论,其中说:
默认情况下,在Mac OS X v10.4上
NSDateFormatter的实例具有
与Mac OS X上的行为相同
版本10.0至10.3。在MacOSX上
v10.5及更高版本,NSDateFormatter
默认为10.4+行为
这完全奏效了。对于必须尝试此操作的任何其他人,我要补充一点,您需要放置//[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior104];在所有事情之前,包括alloc和init。