iOS:将 UTC 时区转换为设备本地时区

标签 ios objective-c timezone

我正在尝试将以下时区转换为设备本地时区:

2013-08-03T05:38:39.590Z

请告诉我如何将其转换为本地时区。

我该怎么做?

最佳答案

时区可以应用于 NSDateFormatter ,您可以从中生成按时差区分的 NSDate 变量。

NSString* input = @"2013-08-03T05:38:39.590Z";
NSString* format = @"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";

// Set up an NSDateFormatter for UTC time zone
NSDateFormatter* formatterUtc = [[NSDateFormatter alloc] init];
[formatterUtc setDateFormat:format];
[formatterUtc setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

// Cast the input string to NSDate
NSDate* utcDate = [formatterUtc dateFromString:input];

// Set up an NSDateFormatter for the device's local time zone
NSDateFormatter* formatterLocal = [[NSDateFormatter alloc] init];
[formatterLocal setDateFormat:format];
[formatterLocal setTimeZone:[NSTimeZone localTimeZone]];

// Create local NSDate with time zone difference
NSDate* localDate = [formatterUtc dateFromString:[formatterLocal stringFromDate:utcDate]];

NSLog(@"utc:   %@", utcDate);
NSLog(@"local: %@", localDate);

[formatterUtc release];
[formatterLocal release];

关于iOS:将 UTC 时区转换为设备本地时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18030078/

相关文章:

ios - 使用 Objective-C 单击按钮时更改图像

ios - 从应用程序(Objective-C、Swift)向联系人发送一些数据

java - 在 Rails 和 Java 中使用时区

iphone - Objective-C 中的 MySQL 命令

ruby-on-rails - 如何将时区配置添加到我的environment.rb 文件中?

c# - 根据使用 httpcontext asp.net mvc 登录的用户获取时区

iOS swift单例初始化方法

ios - NSPredicate 数组包含问题

ios - iOS8 核心位置有问题

ios - 为什么更改 UILabel 文本会触发 viewDidLayoutSubviews 事件?