Objective-C - 如何获取日期格式化程序以在时区偏移中添加冒号

时间:2012-07-27 21:40:17

标签: objective-c ios nsdate

我正在尝试格式化日期以匹配服务器端预期的格式。

  • 通缉:1985-01-24T00:00:00-07:00
  • 得到:1985-01-24T00:00:00-0700
  • 使用:yyyy-MM-dd'T'HH:mm:ssZZZ

我可以使用日期格式技巧来获取那个冒号吗?

这是我的代码。 _birthdate是生日选择器提供的日期:

NSDate *birthdate = (NSDate *)resultObject;
[_birthdate setNewTitle:[IRDate mmddyyFromNSDate:birthdate]];            

//Set server-ready birthdate format
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
serverFormattedBirthDate = [formatter stringFromDate:birthdate];

NSLog(@"Birthdate: %@", serverFormattedBirthDate);

1 个答案:

答案 0 :(得分:4)

根据Date Format Specifiers文档,您似乎需要5 Z个。这样就可以获得"-08:00"

等内容
啊,啊哈,我明白了你的成就。如果您在OS X 10.8上运行格式化,您将获得您期望的字符串。但是,如果您在iOS 5.1上运行格式化,您将在字符串中获得额外的“GMT”。

我猜测最近版本的CLDR中的基础数据已经发生了变化。在那种情况下,我不确定答案是正确的。