Objective-c中与Java中的时间戳相当的是什么?

4

我在任何地方都没有找到这个问题的答案,但这似乎是一个典型的问题:我在Objective-C中有一个看起来像"2010-07-14 16:30:41 +0200"的"NSDate时间戳"。而java时间戳只是一个长整数(例如:"976712400000")。

那么,我的问题是:Objective-C中与java时间戳等价的是什么?

非常感谢您的帮助。

2个回答

17
尽管 @lordsandwich 的答案是正确的,你也可以直接使用 NSDatetimeIntervalSince1970 方法,而不是自己“制造” 1970 年的 NSDate
这样做会像这样工作:
NSDate *past = [NSDate date];
NSTimeInterval oldTime = [past timeIntervalSince1970];
NSString *unixTime = [[NSString alloc] initWithFormat:@"%0.0f", oldTime];

因为使用这种方法不会不必要地向自动释放池中添加新对象,所以我认为最好使用这种方法。


好的,看起来更好了。谢谢。 - jcdmb

4

您可以通过减去Unix时间的起始日期——1970年1月1日,将NSDate给出的格式转换为Unix时间格式。NSTimeInterval只是两个日期之间的差值,您可以用秒数表示:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接