版本10.4和10.5之间的NSDateFormatter问题

时间:2010-07-13 15:48:29

标签: 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 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格式没问题,但我仍然得到了这个奇怪的结果。

任何帮助?

http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW1

1 个答案:

答案 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+行为。