我在任何地方都没有找到这个问题的答案,但这似乎是一个典型的问题:我在Objective-C中有一个看起来像"2010-07-14 16:30:41 +0200"的"NSDate时间戳"。而java时间戳只是一个长整数(例如:"976712400000")。
那么,我的问题是:Objective-C中与java时间戳等价的是什么?
非常感谢您的帮助。
我在任何地方都没有找到这个问题的答案,但这似乎是一个典型的问题:我在Objective-C中有一个看起来像"2010-07-14 16:30:41 +0200"的"NSDate时间戳"。而java时间戳只是一个长整数(例如:"976712400000")。
那么,我的问题是:Objective-C中与java时间戳等价的是什么?
非常感谢您的帮助。
NSDate
的 timeIntervalSince1970
方法,而不是自己“制造” 1970 年的 NSDate
。NSDate *past = [NSDate date];
NSTimeInterval oldTime = [past timeIntervalSince1970];
NSString *unixTime = [[NSString alloc] initWithFormat:@"%0.0f", oldTime];
因为使用这种方法不会不必要地向自动释放池中添加新对象,所以我认为最好使用这种方法。
您可以通过减去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];