NSDate 和 NSDateFormatter 魔法

发布于 2024-12-15 11:20:45 字数 567 浏览 2 评论 0原文

我在将日期的 NSString 值转换为 NSDate 实例时遇到了奇怪的问题。看起来伟大的哈利波特访问了我的代码。

我从服务器收到第 24 次日期格式的日期字符串:“2011-11-15 11:44”。 我的 iPhone 设置中有 12 位日期格式。当我尝试将该字符串转换为 NSDate 时,我可以看到日期值等于 NIL。如果我将设置切换为 24 日日期格式,则效果很好。这是我的代码:

NSString * sDate = @"2011-11-15 11:44";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd HH:mm"];
[df setTimeZone:[NSTimeZone localTimeZone]];
NSDate * pDate = [df dateFromString:sDate];

结果,pDate 为 NIL。但是,如果我在 iPod Touch 上运行此代码,我会看到第 12 种格式的错误日期值,而不是 NIL。我无法理解一个问题。你能帮我一下吗?

谢谢。

I faced with strange problem while converting NSString value of date to NSDate instance. It looks like Great Harry Potter visited my code.

I receive date string from server as 24-th date format: "2011-11-15 11:44".
My iPhone has 12-th date format in settings. When I try to convert that string to NSDate I can see that date value is equal to NIL. If I switch settings to 24-th date format it works fine. This is my code:

NSString * sDate = @"2011-11-15 11:44";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd HH:mm"];
[df setTimeZone:[NSTimeZone localTimeZone]];
NSDate * pDate = [df dateFromString:sDate];

As result, pDate is NIL. But, if I run this code on iPod Touch I can see wrong date value in 12-th format instead NIL. I can't understand a problem. Could you help me please?

Thanks.

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

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

发布评论

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

评论(1

零度℉ 2024-12-22 11:20:45

我检查了Apple的文档,您必须将区域设置设置为en_US_POSIX。您可以在此链接中查看更多信息:

http://developer.apple .com/library/ios/#qa/qa1480/_index.html

I checked Apple's documentation and you have to set the locale to en_US_POSIX. You can see more info at this link:

http://developer.apple.com/library/ios/#qa/qa1480/_index.html

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