1

我的应用今天登陆应用商店。我有一个用户提交了一个奇怪的错误。我有一个日期选择器,它传回我作为字符串存储在 SQLite 中的日期。我在模拟器、3G、itouch 和 iPAD 上测试了该应用程序。在所有这些上,它都按预期工作。但是,在此用户的 3GS 上,它会在日期选择器中选择的日期上添加一天。

除了使用具有 NSDateFormatterMediumStyle 样式的 NSDateformatter 转换为要存储在数据库中的字符串之外,我没有对日期进行任何操作。

任何想法为什么这在 3GS 上会有所不同?

4

3 回答 3

1

您是否考虑过该错误与 iOS4 升级有关而不是设备特定问题的可能性?

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

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

我的日期是这样的:

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

我设法通过在将最大/最小/选定日期应用于日期选择器之前移动日期选择器模式集来解决此问题。在我的情况下:

aDatePicker.datePickerMode = UIDatePickerModeDate;

于 2010-11-02T11:00:47.153 回答
0

这听起来像是时区问题,而不是 3GS 的问题。

我不确定NSDateformatter是否属实(我会尝试一下),但是如果您获得了NSDate的 description 属性,您将获得本地时间(带有 GMT 偏移量)。

如果您保留这些本地时间字符串,然后假设 GMT(或者如果设备上的时区发生更改)取消保留它们,那么时间将是错误的。检查用户所在的时区并尝试使用相应设置的系统时区进行测试(模拟器将使用 MacOS 时区)。

于 2010-07-09T02:05:55.637 回答
0

检查您是否在任何日期格式化程序和日期扫描仪上设置了 NSLocale。默认情况下,他们使用用户的区域设置,如果他们将其设置为您的区域设置以外的其他设置,则可能会有所不同。

于 2010-07-09T02:08:16.273 回答