如何将中的服务器时区转换为设备时区



我的服务器给出的日期如下

07/22/2013 06:13:04 PM UTC +05:30

我想将其转换为设备时区。就像如果我的设备时区是Local Time Zone (Asia/Kolkata (GMT+05:30) offset 19800),那么这个日期看起来会是

在谷歌上搜索并尝试了这么多代码,但没有任何运气。请帮帮我。

您的日期格式与日期字符串的格式不匹配。阅读有关Unicode日期格式模式的信息。然后尝试@"yyyy-MM-dd'T'HH:mm:ssZZZ"

但我认为你无论如何都试图做错事。NSDate是一个时间点,世界上每个地方都是一样的。您不需要仅仅因为源位于不同的时区就计算新的NSDate。

使用上面的日期格式,并将其直接与其他NSDate进行比较。

可能是这样的:

NSString *serverTime = @"2012-01-11T06:17:39+0000";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
NSDate* sourceDate = [dateFormatter dateFromString:serverTime];
if (!sourceDate) {
    NSLog(@"Wrong NSDateFormatter format!");
}
else {
    NSDate *date24HoursAgo = [NSDate dateWithTimeIntervalSinceNow:-(24*60*60)];
    NSLog(@"%@", sourceDate);
    NSLog(@"%@", date24HoursAgo);
    if ([sourceDate compare:date24HoursAgo] == NSOrderedAscending) {
        NSLog(@"Timestamp from server is older than 24 hours.");
    }
}

相关内容

  • 没有找到相关文章

最新更新