比如说,我有一个日期:2014-11-24 12:24:25存储在一个NSString变量中。
我正在尝试将其转换为NSDate对象,以便我可以计算未来日期:
NSDate *futureTimeStamp;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSDate *oldDate = [dateFormatter dateFromString:timestamp];
它一直告诉我,旧日期时间是:2014-11-24 06:46:06 +0000这是不正确的。
为什么它没有正确转换它的任何想法?
更新#1:
timestamp是一个字符串。存储在该变量中的是:2014-11-24 12:58:40
当我打印出oldDate时,它会在2014-11-24 06:58:40 +0000
中显示答案 0 :(得分:-1)
你可以像以下一样进行时间转换:
NSDate *date = [oldDate dateWithTimeIntervalSinceReferenceDate:milliseconds];
答案 1 :(得分:-1)
尝试从UTC转换为本地日期
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSDate *date = [dateFormatter dateFromString:timestamp];
NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone];
NSTimeZone *previousTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];
NSInteger currentGMTOffset = [currentTimeZone secondsFromGMTForDate:date];
NSInteger currentOffset = [previousTimeZone secondsFromGMTForDate:date];
NSTimeInterval gmtInterval = currentGMTOffset - currentOffset;
NSDate *localDate = [[NSDate alloc] initWithTimeInterval:gmtInterval sinceDate:date];