gpt4 book ai didi

ios - NSDate 更改时区

转载 作者:可可西里 更新时间:2023-11-01 05:55:23 25 4
gpt4 key购买 nike

我正在编写一个涉及时区的应用程序。我想获取用户的设备时间,我们称之为 dateA,我有一个目标日期,该日期始终处于美国东部时间时区 (dateB)。

我想获得两个日期之间的差异并显示给用户,但在 dateB 的时区。

例如:
用户设备时间是 07:30AM PDT,dateB 是 11:00AM EDT。
因此时差为 30 分钟。

我的算法是:
1) 获取用户设备时间
2) 转换为 EDT
3) 抓取dateAdateB

的时间差

我的问题是,在我获得用户的设备时间 [NSDate date] 并使用时区 EDT 通过 DateFormatter 之后。时间不变。

编辑::

    NSDate *localDate = [NSDate date]; //this will have 7:30AM PDT
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"EDT"]];
NSString *convertedTimeString = [dateFormatter stringFromDate:localDate];

convertedTimeString 为什么不包含美国东部时间上午 10:30?我做错了什么?

最佳答案

NSDate 以时区中立的方式存储。 NSDateFormatter 使用 -[NSDateFormatter setTimeZone:] 为给定的时区实际格式化.如果你想要来自 NSDate 的字符串,还有 -[NSDate descriptionWithCalendarFormat:timeZone:locale:] , 但通常最好改用 NSDateFormatter

关于ios - NSDate 更改时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18124684/

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