gpt4 book ai didi

ios - 如何保存两个日期,一个使用本地日期,一个使用 UTC

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:02:13 28 4
gpt4 key购买 nike

我需要使用核心数据在事务表中存储每个用户时区的本地时间和 UTC 时间

我想要的是如下

createDate 应该反射(reflect)用户本地时区,在这种情况下我在中国所以 GMT+8

createDateUtc 应该代表相同的时间戳,但在 UTC

我尝试了各种格式化程序,但由于某种原因我无法获得我想要的结果

这是我的两个格式化程序,如您所见,我也尝试使用时区,但它仍然没有将日期设置为 UTC。

 NSDateFormatter *dateFormatterWithTz = [[NSDateFormatter alloc] init];  
[dateFormatterWithTz setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"];

NSDateFormatter *dateFormatterUtc = [[NSDateFormatter alloc] init];
[dateFormatterUtc setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"];
//[dateFormatterUtc setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

这是我如何创建日期变量

 NSDate *createdDateUtc = [NSDate date];   
NSDate *createdDate = [NSDate dateWithTimeInterval:[[NSTimeZone systemTimeZone] secondsFromGMT] sinceDate:createdDateUtc];

这是数组的样子,这是不正确的,因为您可以看到它创建了我的 UTC 日期作为我的本地日期并将创建的日期推到明天并且仍然使用相同的时间偏移,问题应该是我的 UTC 日期是设置为本地时间,但我不知道如何将其设置为 UTC,以便根据该时间正确计算我的创建日期

createdDate = "2016-12-25T03:19:38+08:00";  
createdDateUtc = "2016-12-24T19:19:38+08:00";

最佳答案

您需要为日期格式化程序提供时区

local timeZone试试这个

NSDateFormatter *formate =[[NSDateFormatter alloc] init];
[formate setTimeZone:[NSTimeZone localTimeZone]];
[formate setDateFormat:@"yyyy-MM-dd HH:mm:ss a"];
NSString *strToday =[formate stringFromDate:[NSDate date]];

对于 UTC 时区,像这样设置 UTC 时区

NSDateFormatter *formate =[[NSDateFormatter alloc] init];
[formate setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[formate setDateFormat:@"yyyy-MM-dd HH:mm:ss a"];
NSString *strToday =[formate stringFromDate:[NSDate date]];

希望对您有所帮助。

关于ios - 如何保存两个日期,一个使用本地日期,一个使用 UTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41312944/

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