gpt4 book ai didi

iphone - iOS UIDatePicker时区问题

转载 作者:行者123 更新时间:2023-12-03 19:52:42 25 4
gpt4 key购买 nike

我在使用 UIDatePicker 时遇到了非常令人沮丧的时区问题。

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

[datePicker setTimeZone:[NSTimeZone systemTimeZone]];

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

当我选择 GMT(而不是 BST)日期时,日期效果很好。如果我选择 BST 中的日期(三月至十月),我会得到比 1 小时晚的日期。

这就是我提取日期的方式

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

我检查了一下,系统时间肯定是GMT,那么为什么dateOfBirth返回的值是错误的

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

有什么建议吗?我不想强制时区,因为我希望它脱离手机时区。

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

谢谢

最佳答案

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

[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];

这将始终返回手机的时区。我认为 systemTimeZone 可能有问题。干杯。

关于iphone - iOS UIDatePicker时区问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15722989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com