【问题标题】:Converting Date string with date format as "2015-11-09 06:54:00 UTC" to NSDate将日期格式为“2015-11-09 06:54:00 UTC”的日期字符串转换为 NSDate
【发布时间】:2015-12-17 01:38:27
【问题描述】:

我从服务器获取的字符串格式类似于“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。请提出建议。

【问题讨论】:

    标签: ios date nsdate nsdateformatter


    【解决方案1】:

    试试下面的代码 sn-p;

    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);
    

    【讨论】:

      【解决方案2】:

      我可以说“试试下面的代码”,但这没用。

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

      查看您的日期字符串。

      比较它们。他们不匹配。格式化字符串中的“T”不是某种黑魔法。它的意思是“我希望日期字符串中有一个字母 T”。日期字符串中没有字母 T,这就是它不起作用的原因。

      仔细阅读 Apple 的文档,并注意它引用 Unicode 标准的地方。并仔细阅读 www.unicode.org 上的该文档 - yyyy 和 YYYY 之间、MM 和 MMM 之间、HH 和 hh 之间存在巨大差异,如果你不阅读并学习这一点,你就无法编写代码这给出了预期的结果。

      【讨论】:

      • 格式化程序中的“T”并不意味着字母 T 应该在 dateString 中。 T 只是将日期与时间分开的文字,Z 表示“祖鲁时间”(UTC)。
      猜你喜欢
      • 1970-01-01
      • 2021-04-19
      • 2015-06-06
      • 1970-01-01
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多