NSDateFormatter 返回相差一天的日期
在我的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可能和时区有关系。您可能需要为 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.
我也遇到了同样的问题,但只是在更新到 iOS4 后才出现。我的格式化程序是这样的:
我的日期是这样的:
我只需将最大/最小/选定日期应用到日期选择器之前设置的日期选择器模式移动即可解决此问题。就我而言:
I had this same issue but only after updating to iOS4. My formatter is like this:
and my dates like this:
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: