我有一个接收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
值。我究竟做错了什么?
有一个简单的方法吗?
答案 0 :(得分:3)
如果我正确理解您的问题,您的代码应工作,而且似乎也是如此
当我尝试时给出预期的结果。也许这是systemTimeZone
的问题
与localTimeZone
。
但请注意,您可以将完整方法简化为
NSTimeInterval i = [date timeIntervalSince1970];
i -= [[NSTimeZone localTimeZone] secondsFromGMTForDate:date];