【发布时间】:2014-05-15 17:13:26
【问题描述】:
我想创建一个 NSDateFormatter 来解析日期,如“2014-05-13 23:31:41.374577”。所以:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss.SSSSSS";
NSString *dateString = @"2014-05-13 23:31:41.374577";
NSDate *date = [formatter dateFromString:dateString];
NSString *anotherDateString = [formatter stringFromDate:date];
但是,anotherDateString 是 2014-05-13 23:31:41.374000。为什么会截断毫秒?
【问题讨论】:
-
也许在这里吹毛求疵,但它似乎保留毫秒并截断微秒。
-
错误是在
dateFromString还是stringFromDate?您的[date timeIntervalSinceReferenceDate]的小数位数是否与您预期的一样多? -
看来
[date timeIntervalSinceReferenceDate]已经四舍五入到小数点后三位了…… -
iOS 中的 NSTimeInterval 以毫秒为单位。与 java 和其他一些以纳秒为单位的语言不同。这就是差异的来源。
-
@Fogmeister:
NSTimeInterval是双精度型,精度更高。您还可以在NSDate和NSTimeInterval之间进行转换,精度超过毫秒。这里的问题似乎是日期格式化程序。
标签: ios nsdateformatter