将日期格式为“2015-11-09 06:54:00 UTC”的日期字符串转换为 NSDate

Converting Date string with date format as "2015-11-09 06:54:00 UTC" to NSDate

我从服务器获取的字符串格式如“2015-11-09 06:54:00 UTC”我想转换

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZ";
NSDate* date = [dateFormatter dateFromString:dateString];
[dateFormatter setDateFormat:@"dd MMM yyyy hh:mm a"];
NSString* formattedDate = [dateFormatter stringFromDate:date];

我尝试将日期格式化程序设为 dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZ";

我仍然得到格式化日期为零。

我不明白如何将此字符串转换为正确的 NSDate。请提出建议。

试试下面的代码片段;

NSString *dateString = @"2015-11-09 06:54:00 UTC";
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss Z";
NSDate* date = [dateFormatter dateFromString:dateString];
dateFormatter setDateFormat:@"dd MMM yyyy hh:mm a"];
NSString* formattedDate = [dateFormatter stringFromDate:date];
NSLog(@"Formatted Date: %@",formattedDate);

我可以说"try the code below",但那是没用的。

查看您的格式字符串。它说明日期格式化程序在字符串中期望的内容。

查看您的日期字符串。

比较一下。他们不匹配。格式字符串中的 'T' 并不是什么黑魔法。意思是"I expect a letter T in the date string"。日期字符串中没有字母 T,这就是它不起作用的原因。

仔细阅读 Apple 的文档,注意其中提到 Unicode 标准的地方。并仔细阅读 www.unicode.org 处的文档 - yyyy 和 YYYY、MM 和 MMM 以及 HH 和 hh 之间存在巨大差异,如果你不阅读和学习这个,你将无法编写代码给出了期望的结果。