工作需要,输出时间戳。找了网上的代码,输出一看,结果错误。仔细分析了流程,并无问题。那么就是代码有问题了。错误在哪里?在少了个括号。
正确代码是:
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];