【发布时间】:2013-05-24 12:35:16
【问题描述】:
我正在使用 NSDate 获取当前时间和日期,但它给出的日期和时间基于 GMT。请问有谁知道如何获取当地时间?
提前致谢!
【问题讨论】:
标签: objective-c nsdate
我正在使用 NSDate 获取当前时间和日期,但它给出的日期和时间基于 GMT。请问有谁知道如何获取当地时间?
提前致谢!
【问题讨论】:
标签: objective-c nsdate
NSDate 不知道时区。它始终将日期存储为 GMT 中的绝对时刻。
使用 NSDateFormatter 获取本地(或任何其他时区)表示。
【讨论】:
[dateFormatter setTimeZone:systemTimeZone];
通过上述方法使用日期格式化程序设置日期的时区。它会起作用的。将日期转换为字符串,设置格式和时区并转换回日期。
【讨论】:
您好,我是从另一个网站找到的
NSDate* sourceDate = [NSDate date];
NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:sourceDate];
NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:sourceDate];
NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;
NSDate* destinationDate = [[[NSDate alloc] initWithTimeInterval:interval sinceDate:sourceDate] autorelease];
该网站的链接是here
【讨论】: