繁体   English   中英

iOS UIDatePicker时区问题

[英]iOS UIDatePicker time zone issue

我对UIDatePicker有一个非常令人沮丧的时区问题。

当我初始化我的日期选择器时,我将时区设置为系统时区,以允许该应用程序在多个国家/地区使用

[datePicker setTimeZone:[NSTimeZone systemTimeZone]];

然后用户选择日期。 在保存日期(保存在CoreData中)时,从日期选择器返回的日期是正确的但我想要获取日期而不是时间,即时间为00:00:00

当我选择GMT(不是BST)的日期时,日期可以正常工作。 如果我在BST(3月 - 10月)选择日期,我会将日期提前1小时。

这就是我把日期拉出来的方式

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
NSDate *dateOfBirth = [dateFormatter dateFromString:[dateFormatter stringFromDate:      [dobDatePicker date]]];

我查了一下,系统时间肯定是格林尼治标准时间,那么为什么dateOfBirth的值会出现错误

[dobDatePicker date] = "1991-05-30 18:58:16 +0000"
dateOfBirth          = "1991-05-29 23:00:00 +0000"

有什么建议么? 我不想强制时区,因为我希望它在电话时区运行。

我对时间不感兴趣的原因是我将这个日期存储为出生日期并使用它来计算年龄和生日之前的秒数等值,所以不希望我存储日期的日期选择器的当前时间CoreData

谢谢

在取出时间时使用以下内容,让我知道它是否适合您。

[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];

这将始终返回手机的时区。 我认为systemTimeZone可能会被窃听。 干杯。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM