NSDateFormatter 返回相差一天的日期

发布于 2024-09-26 13:34:08 字数 578 浏览 12 评论 0原文

在我的 iPhone 应用程序中,我尝试从 Web 服务收到的日期字符串中获取 EEE MMM dd。

对于时间 < 的所有日期07:00,NSDateFormatter 返回相差 1 天的日期。例如:日期格式:2010-11-17T05:00:00,格式化日期结果:Tue Nov 16

以下是代码片段: <代码> NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@“EEE MMM dd”];

NSDate *dateToFormat = [NSDate dateWithNaturalLanguageString:dateStringToFormat 区域设置:[[NSUserDefaults standardUserDefaults]dictionaryRepresentation]];

NSString *formattedDateString = [dateFormat stringFromDate:dateToFormat]; [日期格式发布];

可能是什么问题?

In my iPhone app, I am trying to get the EEE MMM dd from a date string received by a web service.

For all dates where time is < 07:00, the NSDateFormatter returns a date off by 1 day. For example: Date to format: 2010-11-17T05:00:00, formatted date result: Tue Nov 16

Here's the code snippet:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat: @"EEE MMM dd"];

NSDate *dateToFormat = [NSDate dateWithNaturalLanguageString:dateStringToFormat locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]];

NSString *formattedDateString = [dateFormat stringFromDate:dateToFormat];
[dateFormat release];

What could be the problem?

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

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

发布评论

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

评论(2

不知所踪 2024-10-03 13:34:08

可能和时区有关系。您可能需要为 NSDateFormatter 对象的 timeZone 属性设置适当的值。

Probably has something to do with time zones. You probably need to set an appropriate value for the timeZone property of your NSDateFormatter object.

☆獨立☆ 2024-10-03 13:34:08

我也遇到了同样的问题,但只是在更新到 iOS4 后才出现。我的格式化程序是这样的:

[日期格式化程序
setDateFormat:@"yyyy-MM-dd HH:mm:ss
z"];

我的日期是这样的:

2009-10-27 7:30:12 -0700

我只需将最大/最小/选定日期应用到日期选择器之前设置的日期选择器模式移动即可解决此问题。就我而言:

aDatePicker.datePickerMode = UIDatePickerModeDate;

I had this same issue but only after updating to iOS4. My formatter is like this:

[aDateFormatter
setDateFormat:@"yyyy-MM-dd HH:mm:ss
z"];

and my dates like this:

2009-10-27 7:30:12 -0700

I managed to fix the issue just by moving the date picker mode set before applying the max/min/selected date to the date picker. In my case this:

aDatePicker.datePickerMode = UIDatePickerModeDate;

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