gpt4 book ai didi

iphone - 将 GMT 时间转换为本地时间

转载 作者:可可西里 更新时间:2023-11-01 06:20:13 24 4
gpt4 key购买 nike

我得到了当前的 GMT 时间 - 2013-05-15 08:55 AM

我当前的本地时间是 - 2013-05-15 02:06 PM时区是 - Asia/Kolkata

我试图用这段代码将上面的 GMT 转换为我的本地时间

   NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"Asia/Kolkata"];
[dateFormatter setTimeZone:sourceTimeZone];


// timeStamp - is the above GMT time

NSDate *dateFromString = [dateFormatter dateFromString:timeStamp];
NSLog(@"local time is %@",dateFromString);

但这给了我错误的时间 - 2013-05-14 19:04:00 +0000 而不是 2013-05-14 02:06 PM

为什么会这样?请帮我解决这个问题。提前致谢

最佳答案

没有任何问题,NSDate实例永远不会有时区(当然会有,但它始终是格林威治标准时间,由日期描述中的 +0000 时区指示)。

您在代码中告诉 dateformatter 的是您要解析的日期的时区是 Asia/Kolkata但你希望它是 GMT .

首先你需要制作一个NSDate来自输入日期字符串的对象,时区设置为正确的时区,GMT正如你所指出的。

NSTimeZone *gmtTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[dateFormatter setTimeZone:sourceTimeZone];
NSDate *dateFromString = [dateFormatter dateFromString:timeStamp];
NSLog(@"Input date as GMT: %@",dateFromString);

然后,当您将日期显示为字符串时,请使用:

NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithName:@"Asia/Kolkata"];
[dateFormatter setTimeZone:sourceTimeZone];
NSString *dateRepresentation = [dateFormatter stringFromDate:dateFromString];
NSLog(@"Date formated with local time zone: %@",dateRepresentation);

关于iphone - 将 GMT 时间转换为本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16560369/

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