iOS文件时间戳的解析
下面的代码片段取自更大的上下文。我想按创建时间的顺序对文件进行排序。问题是d似乎是以秒为单位的,尽管我猜iOS文件时间戳的解析,ios,objective-c,nsdate,Ios,Objective C,Nsdate,下面的代码片段取自更大的上下文。我想按创建时间的顺序对文件进行排序。问题是d似乎是以秒为单位的,尽管我猜NSDate的分辨率要高得多。“iOS”文件系统中存储时间的分辨率是否仅以秒为单位 这些文件是在几毫秒内创建的,所以我需要更高的分辨率。有什么建议吗 for(NSURL *it in archFiles) { NSDate *date; [it getResourceValue:&date forKey:NSURLCreationDateKey error:nil]; do
NSDate
的分辨率要高得多。“iOS”文件系统中存储时间的分辨率是否仅以秒为单位
这些文件是在几毫秒内创建的,所以我需要更高的分辨率。有什么建议吗
for(NSURL *it in archFiles)
{
NSDate *date;
[it getResourceValue:&date forKey:NSURLCreationDateKey error:nil];
double d = date.timeIntervalSince1970;
NSLog(@"%@: timestamp:%f", it.path, d);
}
打印输出(我已删除部分路径):
/private/var/…存档:时间戳:1399819259.000000
我在“iOS模拟器”和“iPad模拟器”上都试过了,结果是一样的。我想结尾的6个零不是纯粹的巧合
只想添加一点,当我将鼠标悬停在调试器中的日期上时,会显示一个有效的日期 NSDate的分辨率高于1秒。但文件系统(iOS上的HSFX)没有。因此,如果读取文件的创建日期,小数部分将始终为零
此外,输出的不是NSDate,而是双倍数字。所以结尾的六个零是
%f
格式模式的产物。可能是No的重复,我不这么认为。但都灵的回答证实了我的假设,我需要用另一种方式来解决这个问题。是的,我知道这是一个双精度的问题,但我担心缺少分数部分。我将这个问题保留了一段时间,只是想看看这类问题通常是如何解决的。谢谢好的,我想我将通过以递增的方式命名文件来解决我的问题,然后使用文件名对文件进行排序。如果有人碰到这件事。