【问题标题】:Get NSDate time since 1970 minus / plus UTC value获取自 1970 年以来的 NSDate 时间减去/加上 UTC 值
【发布时间】:2013-11-03 15:35:29
【问题描述】:

我有一个方法接收 NSDate 对象并返回 1970 年的秒数。

看起来像这样:

-(int)editDate:(NSDate*)date{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormatter setTimeZone:timeZone];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateString = [dateFormatter stringFromDate:date];


NSDateFormatter *stringToNSdate = [[NSDateFormatter alloc] init];
[stringToNSdate setTimeZone:[NSTimeZone systemTimeZone]];
[stringToNSdate setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [stringToNSdate dateFromString:dateString];


return [dateFromString timeIntervalSince1970];
}

该方法应返回从 1970 年开始减去或加上 UTC 值的秒数。 直到dateString 的第一部分工作正常,但是我需要从NSString 制作NSDate 对象,并且格式化程序再次减少UTC 值。我究竟做错了什么? 有什么简单的方法吗?

【问题讨论】:

    标签: ios nsdate utc


    【解决方案1】:

    如果我正确理解了您的问题,您的代码应该可以工作,而且似乎也可以 当我尝试时给出预期的结果。可能是systemTimeZone的问题 与localTimeZone 相比。

    但请注意,您可以将完整的方法简化为

    NSTimeInterval i = [date timeIntervalSince1970];
    i -= [[NSTimeZone localTimeZone] secondsFromGMTForDate:date];
    

    【讨论】:

      猜你喜欢
      • 2019-06-21
      • 1970-01-01
      • 2012-07-06
      • 2010-12-29
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      • 2013-04-22
      • 2011-01-03
      相关资源
      最近更新 更多