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

标签 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);

最佳答案

根据Date Format Specifiers文档,看起来您需要 5 个 Z。这将为您提供类似 "-08:00" 的内容。


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

我猜测 CLDR 的最新版本中的基础数据已发生更改。在这种情况下,我不确定正确答案是什么。

关于Objective-C - 如何让日期格式化程序在时区偏移中添加冒号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11696009/

相关文章:

objective-c - 撤消 [UIGestureRecognizer* requireGestureRecognizerToFail]

ios - 如何根据 bool 值的结果运行 if else 函数

ios - Firebase如何快速实现具有多个图像的发布功能

ios - NSDateFormatter 在设置日期时没有给出正确的响应

ios - 在ios中设置时间格式

swift - 查找两次之间剩余的分钟数

ios - 从 iCloud 下载文件时显示进度百分比?

objective-c - NSURLConnection永不结束

ios - 从不同线程使用时 NSDateFormatter 崩溃

iphone - 应用程序启动后显示特定的 View Controller