gpt4 book ai didi

ios - iPhone : convert GMT to local time

转载 作者:行者123 更新时间:2023-11-28 07:18:27 25 4
gpt4 key购买 nike

当我从我的 Xcode iPhone 模拟器转换时间时,我的代码工作正常,输出如下所示:

2014-02-12 18:11:52 +0000

Local Time Zone (Europe/London (GMT) offset 0)

0

但是当我尝试在我的 iPhone 5 上使用我的应用程序时,输出更改为

1970-01-01 12:00:00 am +0000

Local Time Zone (Europe/London (GMT) offset 0)

0

我正在使用 xcode 5.0 和 iOS 7

-(NSDate *)convertGMTtoLocal:(NSString *)gmtDateStr {

NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSTimeZone *gmt = [NSTimeZone systemTimeZone];

[formatter setTimeZone:gmt];

NSDate *GMTTime = [formatter dateFromString:gmtDateStr];

NSTimeZone *tz = [NSTimeZone localTimeZone];
NSLog(@"%@",tz);
NSInteger seconds = [tz secondsFromGMTForDate: GMTTime];
NSLog(@"%ld",(long)seconds);
NSLog(@"%@",[NSDate dateWithTimeInterval: seconds sinceDate: GMTTime]);
return [NSDate dateWithTimeInterval: seconds sinceDate: GMTTime];

}

谢谢,

最佳答案

NSLog 以格林威治标准时间记录日期。不要用那个。创建日期格式化程序并使用它来记录您的日期。另一位发帖人的代码恰好相反,会将日期转换为格林威治标准时间。离开 vborra 代码中的 setTimeZone 调用,它应该为您提供本地时间的日期。

代码可能是这样的:

  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
NSString *time = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"Time is %@", time);

关于ios - iPhone : convert GMT to local time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21737214/

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