Iphone iOS UIDatePicker时区问题

Iphone iOS UIDatePicker时区问题,iphone,ios,timezone,uidatepicker,Iphone,Ios,Timezone,Uidatepicker,我在UIDatePicker上遇到了一个非常令人沮丧的时区问题 当我初始化日期选择器时,我将时区设置为系统时区,以允许应用程序在多个国家/地区使用 [datePicker setTimeZone:[NSTimeZone systemTimeZone]]; 然后用户选择一个日期。保存日期时(保存在CoreData中),从日期选择器返回的日期是正确的,但我只想获取日期,而不是时间,即时间为00:00:00 当我选择格林尼治标准时间(而不是英国夏令时)的日期时,日期工作正常。如果我在英国夏令时(3月

我在UIDatePicker上遇到了一个非常令人沮丧的时区问题

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

[datePicker setTimeZone:[NSTimeZone systemTimeZone]];
然后用户选择一个日期。保存日期时(保存在CoreData中),从日期选择器返回的日期是正确的,但我只想获取日期,而不是时间,即时间为00:00:00

当我选择格林尼治标准时间(而不是英国夏令时)的日期时,日期工作正常。如果我在英国夏令时(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的值返回错误呢

i、 e

有什么建议吗?我不想强制时区,因为我想让它离开电话时区

我对时间不感兴趣的原因是我将此日期存储为出生日期,并使用它来计算年龄和距离您生日的秒数等值,因此不希望日期选择器中的当前时间出现在我存储在CoreData中的日期中


谢谢

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

[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];

这将始终返回手机的时区。我想系统时区可能被窃听了。干杯。

所以我尝试在这里简单介绍一下,只是在格式化程序中使用了硬编码的日期,得到了相同的问题:NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init];[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];[日期格式化程序setDateFormat:@“yyyy-MM-dd”];NSDate*dateOfBirth=[dateFormatter dateFromString:@“1968-05-31”];NSLog(@“%@”,出生日期);这个输出:2013-03-30 22:56:33.460:1968-05-30 23:00:00+0000
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];