NSTimeInterval timeInterval = date.timeIntervalSinceReferenceDate;
NSDate *anotherDate = [NSDate dateWithTimeIntervalSinceReferenceDate: timeInterval];
Пробуди код, приведенный ниже. date
и anotherDate
будут идентичными.
NSCalendar *calendar = [NSCalendar currentCalendar];
calendar.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:10];
[components setMonth:5];
[components setYear:1934];
NSDate *date = [calendar dateFromComponents:components];
NSLog(@"%@", date);
NSTimeInterval timeInterval = [date timeIntervalSinceReferenceDate];
NSDate *anotherDate = [NSDate dateWithTimeIntervalSinceReferenceDate:timeInterval];
NSLog(@"%@", anotherDate);
UPDATE:
Это неправильно, потому что вы получаете временную метку (интервал времени) с этого сайта, которые используют UNIX метку времени. Кроме того, это неверно, потому что вы используете timeIntervalSinceNow
, который, вероятно, будет меняться каждый раз, когда вы вызываете метод, потому что он относится к текущему времени. Если вы хотите, чтобы дата/интервал времени был совместим с этим сайтом. Использование:
NSTimeInterval timeInterval = date.timeIntervalSince1970;
NSDate *anotherDate = [NSDate dateWithTimeIntervalSince1970:timeInterval];
Вы можете скопировать timeInterval
из приведенного выше (-1188000000) код и вставьте его на веб-сайте, и это даст вам правильную дату.
Внутренний, NSDate
период времени хранения относительно контрольной даты (1 января 2001 года). Веб-сайт, который вы упомянули, - это отметка времени UNIX, которая относится к 1 января 1970 года.
Это также дает мне неправильные результаты. Проверьте измененный вопрос. Я думаю, 'timeIntervalSinceReferenceDate' не помогло бы для более ранних дат. – Hemang
«timeInterval» будет отрицательным, если он находится до контрольной даты (1 января 2001 г.). По крайней мере, это то, что происходит на моей машине. – sikhapol
Большое спасибо, один вопрос, второй способ правильный или нет? 'NSTimeInterval timeInterval = date.timeIntervalSince1970;'? – Hemang