NSDateFormatter 不工作

发布于 2024-11-30 07:40:03 字数 391 浏览 0 评论 0原文

好吧,我觉得问这个问题有点愚蠢,但知道为什么这不起作用:

 {
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"mmmm dd, yyyy"];

        NSDate *myDateFromString = [formatter dateFromString:creditDate.text];
         NSLog(@"%@", myDateFromString);
        [self.credit setCertificationDate: myDateFromString];
    }

它返回 null

Ok I feel kind of dumb asking this, but any idea why this is not working:

 {
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"mmmm dd, yyyy"];

        NSDate *myDateFromString = [formatter dateFromString:creditDate.text];
         NSLog(@"%@", myDateFromString);
        [self.credit setCertificationDate: myDateFromString];
    }

It returns null

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

渔村楼浪 2024-12-07 07:40:03

格式和字符串不匹配,因为“m”是分钟,“M”是月份。因此“August 18 2012”无法解释,请改为“MMMM dd yyyy”。您可以在 unicode.org

我总是明确设置一个区域设置:

  NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
  [dateFormatter setLocale:usLocale];
  [usLocale release];

只要您不解析月份名称,无论您的真实名称是否正确,都没有关系如果提供显式格式字符串,则区域设置为 en_US。

更多提示:

  • 使用硬编码字符串进行测试,以排除提供的日期错误。
  • 尝试使用更简单的格式化字符串,例如不使用时间或月份作为数字来隔离错误部分。
  • 如果仍然不起作用,您可以使用 NSDateFormatter 的 getObjectValue:forString:range:error: 来获取有关错误的更多详细信息。

Format and string don't match because "m" is minute and "M" is month. So "August 18 2012" can't be interpreted, take "MMMM dd yyyy" instead You can check formats at unicode.org

I always set a locale explicitly:

  NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
  [dateFormatter setLocale:usLocale];
  [usLocale release];

As long as you don't parse month names, it doesn't matter if your real locale is en_US if supplying an explicit format string.

Some more hints:

  • Use a hard coded strings for testing to rule out that the supplied date is wrong.
  • Try easier formatter strings like without time or month as number to isolate the erroneous part.
  • If it is still not working,you can use NSDateFormatter's getObjectValue:forString:range:error: to get more detailed information about the error.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文