NSDateFormatter每天返回一个日期

时间:2010-10-06 21:41:29

标签: iphone objective-c ipad nsdateformatter

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

对于时间<&lt;的所有日期。 07:00,NSDateFormatter将日期关闭1天。例如:格式化日期:2010-11-17T05:00:00,格式化日期结果:11月16日星期二

以下是代码段: 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];

可能是什么问题?

2 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:2)

我有同样的问题,但只有在更新到iOS4之后。我的格式化程序是这样的:

  

[aDateFormatter   setDateFormat:@“yyyy-MM-dd HH:mm:ss   Z“];

和我的日期是这样的:

  

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

我设法通过将日期选择器模式设置为之前将最大/最小/选定日期应用于日期选择器来解决问题。就我而言:

  

aDatePicker.datePickerMode = UIDatePickerModeDate;