NSDateFormatter 以一天为单位返回一个日期

Posted

技术标签:

【中文标题】NSDateFormatter 以一天为单位返回一个日期【英文标题】:NSDateFormatter returns a date off by a day 【发布时间】:2010-10-06 21:41:28 【问题描述】:

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

对于时间

这里是代码 sn-p: NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat: @"EEE MMM dd"];

NSDate *dateToFormat = [NSDate dateWithNaturalLanguageString:dateStringToFormat 语言环境:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]];

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

可能是什么问题?

【问题讨论】:

您住在哪里,网络服务使用哪个时区? 【参考方案1】:

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

【讨论】:

嗯,所以我将时区属性设置为localTimeZone。但结果还是一样。它在时间超过早上 7 点时起作用。但在此之前的任何事情都会导致日期倒退一天。 这是修复:[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];【参考方案2】:

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

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

我的日期是这样的:

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

我只是通过移动日期选择器模式集将最大/最小/选定日期应用于日期选择器来解决了这个问题。在我的情况下:

aDatePicker.datePickerMode = UIDatePickerModeDate;

【讨论】:

以上是关于NSDateFormatter 以一天为单位返回一个日期的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询,用于在一周中的每一天为项目排序的EACH类别中查找UNITS

FLINK 基于1.15.2的Java开发-使用AggregateFunction解决以天为单位诸如PVUV等统计的实时计算

Python实现 : 输入某年某月某日,判断某一天为当年的第几天

以天为单位的日期时间差异的高性能计算

Javascript中的日期差异(忽略一天中的时间)

以天为单位计算用户的年龄java [重复]