gpt4 book ai didi

objective-c - 使用 Objective c 将纪元时间转换为具有良好时区的 NSDate

转载 作者:太空狗 更新时间:2023-10-30 03:21:10 24 4
gpt4 key购买 nike

如何将纪元时间值转换为 NSDate。例如,我使用这个值:1310412600000。我在 EDT 时区。

当我尝试这个时:

NSString *bar = [[NSDate dateWithTimeIntervalSince1970:epoch] description];

我得到了一个错误的值...

有什么好的方法吗?我花了很多时间......

谢谢

最佳答案

纪元时间(也称为“Unix”和“POSIX”时间)是自 1970 年开始以来的秒数。您可以使用以下算法将纪元时间转换为 NSDate:

  1. 实例化 NSDate 对象并将纪元时间作为参数传递给 NSDate 的 initWithTimeIntervalSince1970 初始化器。 大功告成。 NSDate 对象设置为纪元时间。 NSDate 在内部以 UTC 时区存储时间。如何显示由您决定。
  2. [可选] 使用 NSDateFormatter 将您的 NSDate 格式化为适当的时区。

这是我使用的代码:

    // Sample string epochTime is number of seconds since 1970
NSString *epochTime = @"1316461149";

// Convert NSString to NSTimeInterval
NSTimeInterval seconds = [epochTime doubleValue];

// (Step 1) Create NSDate object
NSDate *epochNSDate = [[NSDate alloc] initWithTimeIntervalSince1970:seconds];
NSLog (@"Epoch time %@ equates to UTC %@", epochTime, epochNSDate);

// (Step 2) Use NSDateFormatter to display epochNSDate in local time zone
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss zzz"];
NSLog (@"Epoch time %@ equates to %@", epochTime, [dateFormatter stringFromDate:epochNSDate]);

// (Just for interest) Display your current time zone
NSString *currentTimeZone = [[dateFormatter timeZone] abbreviation];
NSLog (@"(Your local time zone is: %@)", currentTimeZone);

关于objective-c - 使用 Objective c 将纪元时间转换为具有良好时区的 NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6655446/

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