【问题标题】:How to convert server TimeZone in to Device TimeZone [duplicate]如何将服务器时区转换为设备时区 [重复]
【发布时间】:2013-07-21 05:37:03
【问题描述】:

我的服务器给出这样的日期

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

我想将其转换为设备时区。例如,如果我的设备时区是 Local Time Zone (Asia/Kolkata (GMT+05:30) offset 19800),而不是这个日期的样子

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

【问题讨论】:

标签: iphone ios timezone


【解决方案1】:

您的 dateFormat 与您的日期字符串的格式不匹配。阅读Unicode Date Format Patterns。 然后尝试@"yyyy-MM-dd'T'HH:mm:ssZZZ"

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

使用上面的 dateFormat 并将其直接与不同的 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.");
    }
}

【讨论】:

    猜你喜欢
    • 2013-08-04
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 2020-06-06
    • 2011-02-19
    相关资源
    最近更新 更多