【问题标题】:NSDateFormatter won't format strange date stringNSDateFormatter 不会格式化奇怪的日期字符串
【发布时间】:2013-03-12 09:29:53
【问题描述】:

所以我收到的日期字符串如下所示:“2013-03-20T21:13:26-7:00”,我从 Web 后端收到。我无法控制后端,仅供参考。

我的偏好是将日期格式设置为:3/20 晚上 9:13。

当我执行以下操作时

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSDate *date  = [dateFormatter dateFromString:@"2013-03-20T21:13:26-7:00"];

date 为空。

我的第一个想法是日期字符串看起来很奇怪,也许我应该删除 T 和“-7:00”,因为“-7:00”附加到我收到的每个日期,我不知道是干什么用的。

即使字符串看起来像 @"2013-03-20 21:13:26",date 仍然为空。

我承认我不是格式化日期方面的专家,所以如果我能在这个问题上得到一些帮助,那就太好了。

提前致谢!

【问题讨论】:

    标签: ios objective-c date nsdate nsdateformatter


    【解决方案1】:

    dateFormatter设置日期格式,你的问题出在日期的最后一部分,其次你可以在dateformatter中设置T如下

      [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssz"];
      [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
    
      NSDate *date  = [dateFormatter dateFromString:@"2013-03-20T21:13:26-7:00"];
    

    【讨论】:

    • 我已经有了,但正如我在上面发布的那样,我什至没有到达那一行,因为在执行 dateFromString 之后 NSDate 日期对象已经为空
    【解决方案2】:

    您必须将 dateFormat 设置为 dateFormatter

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssz"];
    NSDate *date  = [dateFormatter dateFromString:@"2013-03-20T21:13:26-7:00"];
    
    [dateFormatter setDateFormat:@"hh:mma 'at' MM/yy"];
    NSString *dateString = [dateFormatter stringFromDate:date];
    

    【讨论】:

      【解决方案3】:

      设置日期格式,

      [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
      

      【讨论】:

        猜你喜欢
        • 2020-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-07
        • 1970-01-01
        相关资源
        最近更新 更多