我有一个方法来接收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
正常工作的第一部分,但随后我需要从NSDate
中创建NSString
对象,然后格式化程序再次降低UTC
值。我究竟做错了什么?有一个简单的方法吗?
最佳答案
如果我正确理解了您的问题,则您的代码应该可以运行,并且似乎
尝试时给出预期的结果。也许这是systemTimeZone
的问题
与localTimeZone
相比。
但请注意,您可以将完整方法简化为
NSTimeInterval i = [date timeIntervalSince1970];
i -= [[NSTimeZone localTimeZone] secondsFromGMTForDate:date];
关于ios - 获取自1970年以来的NSDate时间减去/加上UTC值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19754680/