如果从服务器传回的数据是13位的时间戳 怎么转换为时间呢?
NSString * timeStampString = @"1423189125874";
NSDate *date = [NSDate dateWithTimeIntervalSince1970:[timeStampString doubleValue] / 1000];
NSLog(@"%f", ([date timeIntervalSince1970] * 1000.0));
输出
2015-02-06 10:51:35.323 iOSTest[4359:67092] 1423189125874.000000
NSTimeInterval
是 double 类型的,所以除以 1000 就不会丢精度了。
NSString * timeStampString = @"1423189125873";
NSTimeInterval _interval=[[timeStampString substringToIndex:10] doubleValue];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:_interval];
NSLog(@"%@", date);
======================
保留毫秒
NSString * timeStampString = @"1423189125873";
NSTimeInterval _interval=[timeStampString doubleValue] / 1000.0;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:_interval];
NSDateFormatter *objDateformat = [[NSDateFormatter alloc] init];
[objDateformat setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
NSLog(@"%@", [objDateformat stringFromDate: date]);
2 回答1.1k 阅读
1 回答1k 阅读✓ 已解决
1 回答2.7k 阅读
1 回答1.4k 阅读
1.7k 阅读
1 回答1.1k 阅读
1 回答939 阅读
我们也遇到了同样的问题,服务端是 Java(Jersey + Jackson)输出的时间戳是 13 位的,而 iOS 要求是 10 位的……
Stackoverflow 的回答是:Java 时间戳是精确到毫秒的,就是 13 位的。
另外一个帖子 提供了解决方法
示例代码如下: