dateFromString 在 iOS 4.3.4 中的工作方式有所不同?

发布于 2024-11-25 08:56:15 字数 492 浏览 6 评论 0原文

iOS 4.3.4 中 NSDateFormatter 有什么变化吗?因为我昨天将 iTouch 操作系统升级到 4.3.4,发现我的一些与 NSDateFormatter 相关的代码停止工作。

NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];

[outputFormatter setDateFormat:@"h:mm a"];

NSDate *date_ = [outputFormatter dateFromString:@"08:00 AM"];
NSLog(@"Date:%@",date_);

[outputFormatter release];

输出

iOS 4.3.1:1970-01-01 02:30:00 +0000

iOS 4.3.4:空。

有什么想法吗????

Is there any changes regarding NSDateFormatter in iOS 4.3.4? Because i upgraded my iTouch os to 4.3.4 yesterday and found that some of my code related to NSDateFormatter is stop to work.

NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];

[outputFormatter setDateFormat:@"h:mm a"];

NSDate *date_ = [outputFormatter dateFromString:@"08:00 AM"];
NSLog(@"Date:%@",date_);

[outputFormatter release];

OUTPUT

iOS 4.3.1 : 1970-01-01 02:30:00 +0000

iOS 4.3.4 : null.

Any ideas????

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

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

发布评论

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

评论(1

寄风 2024-12-02 08:56:15

首先,您的代码在 iOS 4.3.1 中不能工作...如果您查看日期,您应该注意到它是 1970 年 1 月,或者计算机编程中常见的“零年” 。

我认为你应该输入“HH:mm”而不是“h:mm a”。双倍的 h 并不意味着两位数,它只是 ISO 制定的一些约定。关于“AM-PM”参数,我认为它来自语言环境。

查看 NSDatesetLocale 文档。我认为你的参数应该是 @"en-US"

我希望它对你有帮助。

问候。

First of all, your code does NOT work in iOS 4.3.1... If you look at the date, you should notice that it is January 1970, or the common "year zero" in computer programming.

I think you should have put "HH:mm" instead of "h:mm a". The doubled h doesn't mean two digits, it is just some convention made up by ISO. And regarding the "AM-PM" parameter, I think it comes from locale.

Look at the documentation of NSDate for setLocale. Your parameter should be @"en-US" I think.

I hope it helped you.

Regards.

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