获取特殊格式的当前日期字符串

时间:2013-04-18 03:12:37

标签: iphone objective-c nsdate nsdateformatter

我正在写iPhone应用程序。 我想以下列格式获取当前日期和时间。

Thu, 18 Apr 2013 01:41:13 

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

documentation for setDateFormat: in the NSDateFormatter Class ReferenceData Formatting Guide链接。

数据格式指南中,Date Formatters > Use Format Strings to Specify Custom Formats > Fixed Formats部分链接到Appendix F of the *Unicode Technical Standard #35

附录F虽然有点迟钝,却告诉你一切:

  • 使用E作为短工作日名称。
  • 使用d作为当月的日期。
  • 使用MMM作为短月名称。
  • 今年使用y
  • 使用hh表示小时。
  • 分钟使用mm
  • 使用ss作为第二个。

我们可以快速测试这一点,而无需使用Python的Cocoa绑定编写整个Objective-C程序:

:; python
Python 2.7.2 (default, Oct 11 2012, 20:14:37) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from Cocoa import *
>>> f = NSDateFormatter.new()         
>>> f.setDateFormat_('E, d MMM y hh:mm:ss')
>>> f.stringFromDate_(NSDate.new())
u'Wed, 17 Apr 2013 10:40:25'

在Objective-C中,它看起来像这样:

NSDateFormatter *f = [NSDateFormatter new];
f.dateFormat = @"E, d MMM y hh:mm:ss";
NSLog(@"%@", [f stringFromDate:[NSDate new]]);

请注意,创建NSDateFormatter的费用很高。你应该创建一次并保留它,如果你要格式化许多日期。