iOS oc 如何获取13位的时间戳

在iOS开发中,若需要获取13位的时间戳(即精确到毫秒的时间戳),可以通过以下方法实现:

使用NSDate类获取当前时间并转换为13位时间戳

iOS系统默认生成的时间戳是10位整数(精确到秒),但可以通过乘以1000将秒级时间戳转换为毫秒级时间戳。

示例代码如下:

     NSDate *now = [NSDate date];

     NSTimeInterval interval = [now timeIntervalSince1970] * 1000;

     NSLog(@"当前时间戳(13位): %ld", (long)interval);

这段代码通过[NSDate date]获取当前时间,并使用timeIntervalSince1970方法计算自1970年1月1日以来的秒数,然后乘以1000得到毫秒级的时间戳。

从服务端返回的13位时间戳转换为可读格式

如果从服务端接收到的是一个13位的时间戳字符串,可以将其转换为NSDate对象,再格式化为可读的时间字符串。

示例代码如下:

     NSString *timeStampString = @"1495453213000"; //假设这是从服务端返回的13位时间戳

     NSTimeInterval interval = [timeStampString doubleValue] / 1000.0;

     NSDate *date = [NSDate dateWithTimeIntervalSince1970: interval];

     NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

     formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

     NSString *dateString = [formatter stringFromDate:date];

     NSLog(@"转换后的时间字符串: %@", dateString);

这里将接收到的13位时间戳字符串除以1000转换为秒级时间戳,再通过NSDate类解析为NSDate对象,最后使用NSDateFormatter将其格式化为可读的时间字符串。

注意事项

iOS系统默认生成的时间戳是10位整数,因此在处理13位时间戳时,需要特别注意是否需要除以1000或乘以1000进行单位转换。

如果需要将时间戳转换为其他格式(如年月日时分秒),可以使用NSDateFormatter类进行格式化。例如,设置格式为"yyyy-MM-dd HH:mm:ss"可以得到精确到秒的时间字符串,而设置格式为"yyyy-MM-dd HH:mm:ss.SSS"可以得到精确到毫秒的时间字符串。

总结

获取当前时间的13位时间戳:直接将秒级时间戳乘以1000即可。

处理接收到的13位时间戳:将其除以1000转换为秒级时间戳后解析为NSDate对象。

格式化时间戳:使用NSDateFormatter类根据需求设置不同的日期格式。

通过上述方法,可以在iOS开发中灵活地获取和处理13位时间戳,满足不同场景的需求。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容