iOS正确获取时间戳的代码

工作需要,输出时间戳。找了网上的代码,输出一看,结果错误。

仔细分析了流程,并无问题。那么就是代码有问题了。错误在哪里?

在少了个括号。

正确代码是:

NSString *timeStamp = [NSString stringWithFormat:@"%ld",

(long)([[NSDate date] timeIntervalSince1970]*1000)];

与网上代码不同的是,long造型的对象不同,后面有个括号。


为什么这样就对了呢?

NSDate得到的是一个浮点数,整数部分是秒,小数部分是微秒。

所以要乘1000得到毫秒的整数,然后造型去掉小数。


时间戳的格式,一般建议为"HH:mm:ss.SSS"。代码如下:

//避免每次都要新建。

self.timeStampFormat = [[NSDateFormatter alloc] init] ; [self.timeStampFormat setDateStyle:NSDateFormatterMediumStyle];

[self.timeStampFormat setTimeStyle:NSDateFormatterShortStyle];

 [self.timeStampFormat setDateFormat:@"HH:mm:ss.SSS"]; // ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制

//设置时区

NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];

[self.timeStampFormat setTimeZone:timeZone];



猜你喜欢

转载自blog.csdn.net/quantum7/article/details/80687461