【问题标题】:NSDateFormatter dateFormat for Google Calendar Data谷歌日历数据的 NSDateFormatter dateFormat
【发布时间】:2012-06-19 12:25:17
【问题描述】:

我在尝试将 Google 日历日期字符串(从公共 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] 是什么... p>

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

即我相信问题出在:

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

干杯,

【问题讨论】:

    标签: ios datetime nsdate nsdateformatter date-format


    【解决方案1】:

    似乎 +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];
    

    【讨论】:

    • 帮助太大了;感谢您快速准确的回复!
    猜你喜欢
    • 2016-08-30
    • 2011-06-10
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    • 2016-02-16
    • 1970-01-01
    相关资源
    最近更新 更多