怎么以时间戳格式获取当前NSDate?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我有一个获取当前时间并将其设置为字符串的基本方法。但是,如何在1970年以后的时间戳格式中使用UNIX格式化当前日期和时间?

这是我的代码:

NSDate *currentTime = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh-mm"];
NSString *resultString = [dateFormatter stringFromDate: currentTime];

是否可以使用NSDateFormatter将'resultString'更改为时间戳?

提问于
用户回答回答于

我用的是:

NSString * timestamp = [NSString stringWithFormat:@"%f",[[NSDate date] timeIntervalSince1970] * 1000];

(乘以1000毫秒,否则,去掉它)

如果你一直在使用它,那么声明一个宏可能更好

#define TimeStamp [NSString stringWithFormat:@"%f",[[NSDate date] timeIntervalSince1970] * 1000]

那就这样说吧:

NSString * timestamp = TimeStamp;

或作为一种方法:

- (NSString *) timeStamp {
    return [NSString stringWithFormat:@"%f",[[NSDate date] timeIntervalSince1970] * 1000];
}

时间间隔

- (NSTimeInterval) timeStamp {
    return [[NSDate date] timeIntervalSince1970] * 1000;
}

Swift

如果您想要SWIFT中的全局变量,可以使用以下内容:

var Timestamp: String {
    return "\(NSDate().timeIntervalSince1970 * 1000)"
}

然后,你可以称之为

println("Timestamp: \(Timestamp)")

再次,*1000是毫秒,如果你愿意的话,你可以去掉它。如果你想把它当作NSTimeInterval

var Timestamp: NSTimeInterval {
    return NSDate().timeIntervalSince1970 * 1000
}

在任何类的上下文之外声明它们,它们可以在任何地方访问。

用户回答回答于

扫码关注云+社区