NSDateFormatter dateFromString:返回 nil

发布于 2024-11-24 23:56:15 字数 543 浏览 1 评论 0原文

我在使用 NSDateFormatterdateFromString 方法时遇到问题。

我有以下日期: Tue, 12 Jul 2011 20:18:26 GMT ,但 NSDateFormatter 似乎无法识别它并返回 (null)< /代码>。

这是我尝试过的:

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd/MM/yyyy HH:MM:SS"];
    NSDate *date = [dateFormatter dateFromString:@"Tue, 12 Jul 2011 20:18:26 GMT"];
    [dateFormatter release];

    NSLog(@"Date: %@",date);

我做错了什么?

I am having problems with NSDateFormatter's dateFromString method.

I have the following date: Tue, 12 Jul 2011 20:18:26 GMT , but NSDateFormatter doesn't seem to recognize it and returns (null).

Here's what I tried:

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd/MM/yyyy HH:MM:SS"];
    NSDate *date = [dateFormatter dateFromString:@"Tue, 12 Jul 2011 20:18:26 GMT"];
    [dateFormatter release];

    NSLog(@"Date: %@",date);

What am I doing wrong?

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

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

发布评论

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

评论(3

仅冇旳回忆 2024-12-01 23:56:15

在这种情况下,您需要设置dateFormat以匹配字符串中日期的格式。尝试以下操作:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"ddd, dd MMM YYYY HH:MM:SS ZZZ"];
NSDate *date = [dateFormatter dateFromString:@"Tue, 12 Jul 2011 20:18:26 GMT"];
[dateFormatter setDateFormat:@"dd/MM/yyyy HH:MM:SS"];
NSString *newFormattedDate = [dateFormatter stringFromDate:date];

NSLog(@"Date: %@ || %@",datem newFormattedDate);

In this case you need to set dateFormat to match the format of the date in the string. Try following:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"ddd, dd MMM YYYY HH:MM:SS ZZZ"];
NSDate *date = [dateFormatter dateFromString:@"Tue, 12 Jul 2011 20:18:26 GMT"];
[dateFormatter setDateFormat:@"dd/MM/yyyy HH:MM:SS"];
NSString *newFormattedDate = [dateFormatter stringFromDate:date];

NSLog(@"Date: %@ || %@",datem newFormattedDate);
百思不得你姐 2024-12-01 23:56:15

您的问题是您的日期格式 @"dd/MM/yyyy HH:MM:SS" 与您的日期字符串 @"Tue, 12 Jul 2011 20:18:26 GMT “。您需要使用不同的日期格式。

Your problem is that your date format @"dd/MM/yyyy HH:MM:SS" doesn't match your date string @"Tue, 12 Jul 2011 20:18:26 GMT". You need to use a different date format.

小情绪 2024-12-01 23:56:15

您正在解析的字符串与您在 NSDateFormatter 上设置的格式字符串不匹配。您输入的格式是:

dd/MM/yyyy HH:MM:SS

...匹配如下字符串:

"15/07/2011 10:30:01"

如果您希望它匹配 Tue, 12 Jul 2011 20:18:26 GMT,那么您需要更改格式。您可能会有更好的运气:

[dateFormatter setDateFormat:@"E, dd MMM yyyy HH:MM:SS z"];

您可能会发现这个不必要的复杂文档很有帮助。

The string you are parsing does not match the format string that you set on your NSDateFormatter. The format you entered is:

dd/MM/yyyy HH:MM:SS

...which matches strings like:

"15/07/2011 10:30:01"

If you want it to match Tue, 12 Jul 2011 20:18:26 GMT, then you need to change the format. You might have better luck with:

[dateFormatter setDateFormat:@"E, dd MMM yyyy HH:MM:SS z"];

You may find this needlessly complex documentation helpful.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文