gpt4 book ai didi

ios - NSDateFormatter dateFromString 总是返回 nil

转载 作者:IT王子 更新时间:2023-10-29 08:21:22 24 4
gpt4 key购买 nike

我想提前为重复提问而道歉,但目前还没有其他解决方案对我有用。每次我尝试将日期字符串传递给 dateFromString 函数时,我都会得到 nil。我没有在任何地方读到自 iOS 7 更新以来事情发生了变化,但如果这对它是否仍然以相同的方式工作产生影响,我正在更新。

这是我用来从字符串创建日期的代码:

    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormat setLocale:[NSLocale systemLocale]];
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
[dateFormat setFormatterBehavior:NSDateFormatterBehaviorDefault];

NSDate *date = [[NSDate alloc] init];
date = [dateFormat dateFromString:dateString];

return date;

我已经根据我读过的所有解决方案设置了我的 dateFormat 来解决这个问题,但是这些设置都没有解决问题。 systemLocale 绝对是为英语设置的,因此应该不会引起任何问题。

这是我传递给 dateFromString 的 dateString:

Wednesday, October 9, 2013 at 2:40:29 PM Pacific Daylight Time

感谢您的帮助!

最佳答案

这里有两个问题:

  1. 格式化程序期望的日期字符串格式 (@"yyyy-MM-dd hh:mm:ss") 与您尝试的日期字符串格式不同解析 (@"EEEE, MMMM d, yyyy 'at' h:mm:ss a zzzz")。

  2. 将格式化程序的区域设置为 [NSLocale systemLocale] 会导致 [dateFormat dateFromString:] 返回 nil。将其设置为 [NSLocate currentLocale]

格式化程序的完整代码应该是:

    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormat setLocale:[NSLocale currentLocale]];
[dateFormat setDateFormat:@"EEEE, MMMM d, yyyy 'at' h:mm:ss a zzzz"];
[dateFormat setFormatterBehavior:NSDateFormatterBehaviorDefault];

NSDate *date = [dateFormat dateFromString:dateString];

关于ios - NSDateFormatter dateFromString 总是返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19300032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com