Что такое Objective-c, эквивалентный метке времени Java? - PullRequest
4 голосов
/ 15 июля 2010

Я нигде не нашел ответа на этот вопрос, но это кажется типичной проблемой: у меня в Objective-C есть «отметка времени NSDate», которая выглядит как «2010-07-14 16:30:41 +0200 ». Временная метка Java - это просто длинное целое число (например, «976712400000»).

Итак, мой вопрос: что такое Objective-c, эквивалентный метке времени Java?

Заранее спасибо за помощь.

Ответы [ 2 ]

17 голосов
/ 15 июля 2010

Хотя ответ @ lordsandwich верен, вы также можете напрямую использовать метод NSDate timeIntervalSince1970 вместо того, чтобы «самим» создавать 1970 NSDate.

Это будет работать так:*

NSDate *past = [NSDate date];
NSTimeInterval oldTime = [past timeIntervalSince1970];
NSString *unixTime = [[NSString alloc] initWithFormat:@"%0.0f", oldTime];

Поскольку при использовании этого метода вы не добавляете новый объект в пул автоматического выпуска, я думаю, что на самом деле лучше использовать этот метод.

4 голосов
/ 15 июля 2010

Вы можете преобразовать формат, который NSDAte дает вам время Unix, вычитая начальный дата времени Unix, которая является 1 января 1970 года. NSTimeInterval - это просто разница между двумя датами, и вы можете получить это в секундах:

NSDate * past = [NSDate date];
NSTimeInterval oldTime = [past timeIntervalSinceDate:[NSDate dateWithNaturalLanguageString:@"01/01/1970"]];
NSString * unixTime = [[NSString alloc] initWithFormat:@"%0.0f", oldTime];
...