在目标c中,“2011-05-10T14:30:00 0000”的正确日期格式是什么?

时间:2011-05-10 18:47:59

标签: iphone objective-c cocoa-touch cocoa nsdateformatter

我知道“2011-05-10T14:30:00-0000”,这个“[someDateFormatter setDateFormat:@”yyyy' - 'MM' - 'dd'T'HH':'mm':'ssZZZ“ ];“有效。但是无法弄清楚如何配置格式以便它知道时区之前有空格符号而不是“ - ”符号?谢谢!

2 个答案:

答案 0 :(得分:2)

1..3大写Z pattern表示RFC 822时区。 RFC 822时区表示与GMT(或UTC)的偏移量,其具有以下格式。来自RFC 822 standard

zone             =  "UT"  / "GMT"                ; Universal Time
                                                 ; North American : UT
                 /  "EST" / "EDT"                ;  Eastern:  - 5/ - 4
                 /  "CST" / "CDT"                ;  Central:  - 6/ - 5
                 /  "MST" / "MDT"                ;  Mountain: - 7/ - 6
                 /  "PST" / "PDT"                ;  Pacific:  - 8/ - 7
                 /  1ALPHA                       ; Military: Z = UT;
                                                 ;  A:-1; (J not used)
                                                 ;  M:-12; N:+1; Y:+12
                 / ( ("+" / "-") 4DIGIT )        ; Local differential
                                                 ;  hours+min. (HHMM)

正如你可以在最后看到它预期一个标志,'+'或' - '。那么,在你的情况下,缺少符号是否意味着积极的'+'或负' - '偏移?

您可以手动预解析字符串,添加缺少的符号以符合规范。

答案 1 :(得分:0)

只需在日期格式语法中将' - '替换为''(单引号内有空格)