2

所以我收到了一个如下所示的日期字符串:“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它仍然为空。

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

提前致谢!

4

3 回答 3

14

您必须将 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];
于 2013-03-22T13:45:18.597 回答
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"];
于 2013-03-22T13:42:33.873 回答
0

设置日期格式,

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
于 2013-03-22T13:45:18.810 回答