我正在使用NSDate获取当前时间和日期,但它根据GMT给出了日期和时间。有人知道如何获得当地时间吗?
提前致谢!
答案 0 :(得分:1)
NSDate不了解时区。它始终将日期存储为绝对时刻,格林尼治标准时间。
使用NSDateFormatter获取本地(或任何其他时区)表示。
答案 1 :(得分:1)
[dateFormatter setTimeZone:systemTimeZone];
使用上述方法使用日期格式化程序设置日期的时区。它会工作。将日期转换为字符串,设置格式和时区并转换回日期。
答案 2 :(得分:-1)
您好,我是从其他网站找到的
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