ios - 谷歌日历数据的 NSDateFormatter dateFormat

标签 ios datetime nsdate nsdateformatter date-format

我似乎在尝试将 Google 日历日期字符串(从公共(public) JSON 解析)转换为 NSDate 格式时遇到了很大困难。

Google 日历 API 的结果采用以下格式:

"2012-06-20T11:00:00.000+01:00"

我正在尝试将其格式化为 NSDate,如下所示:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSzzz";
NSDate *gmtDate = [formatter dateFromString:[whenDict objectForKey:@"startTime"]];

但是,我一直得到一个空结果,所以我想知道是否有人知道正确的 [NSDate dateformat] 是什么我正在尝试转换的结果...

我已经尝试了各种 dateFormat 变体,但在花了几个小时处理多个字母变体之后,我还没有找到合适的变体!

即我认为问题在于:

formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSzzz";

干杯,

最佳答案

+01:00 似乎不是标准时区,因此您必须将其更改为 +0100,去掉其中的冒号(引用 iPhone NSDateFormatter Timezone Conversion)

你可以使用下面的代码

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSZZZ";
NSString *dataString = @"2012-06-20T11:00:00.000+01:00";
NSMutableString *mutableDate = [dataString mutableCopy];
[mutableDate deleteCharactersInRange:NSMakeRange(mutableDate.length - 3, 1)];

NSDate *gmtDate = [formatter dateFromString:mutableDate];

关于ios - 谷歌日历数据的 NSDateFormatter dateFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11100880/

相关文章:

ios - AVCaptureSession - 并行添加多个输出

ruby-on-rails - rails + PostgreSQL : How to query timezone info along with time

mysql - 如何在数据库中保存 future (!)日期

java - Amazon Turk REST 调用 java 的日期

iphone - NSDateFormatter 获取小时和时间

ios - 自定义 CALayer 子类未显示

ios - 在 Sprite Kit 中混合颜色

swift - 两个日期之间的天数并存储在变量中

ios - 如何通过 url scheme 打开 iGo

iphone - NSDateFormatter 返回意外结果