NSDateFormatter日期/时间格式化,带有时区中的冒号

5
我遇到了一个将日期/时间字符串转换为NSDate的问题。
我需要转换的日期字符串是:2002-12-24T00:00:00-07:00
我的日期格式字符串目前是yyyy-MM-dd'T'HH:mm:ssZZZ
问题在于时区中的冒号。
ZZZ返回一个类似于:-0700(没有冒号)的字符串 如何转换带有时区冒号的字符串?
谢谢
1个回答

3

我建议进行一些字符串操作,使其以一种dateWithString更容易接受的形式呈现——使用stringByReplacingOccurrencesOfString一次或多次来去掉冒号,这样做会更好。

dateWithString需要:

YYYY-MM-DD HH:MM:SS ±HHMM

您有:

yyyy-MM-dd'T'HH:mm:ssZZZ

您可能需要使用componentsSeparatedByString的组合(除非T的可能值范围很小),以便摆脱'T'部分,并可能编写一个小函数将ssZZZ转换为+HHMM。


1
'T'将处理T,所以我只需要摆脱时区部分之间的冒号即可。我的担忧是这是解决问题的“简单”方法,但不是正确的方法。然而,与我谈论过此事的每个人都似乎只能这样做。由于我的字符串始终具有相同的格式,因此我可以使用stringByReplacingOccurrencesOfString:withString:options:range:并将范围设置为长度为1,距字符串末尾3个字符的位置。 - kdbdallas
我有一个与你完全相同的字符串(2002-12-24T00:00:00-07:00),但是我的日期格式化程序“yyyy-MM-dd'T'HH:mm:ssZZZ”无论输入字符串中是否有“:”,都不能正常工作。有什么变化吗? - Kendall Helmstetter Gelner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接