What is the precision of *.datenum, which dir() returns
1 次查看(过去 30 天)
显示 更早的评论
When I apply dir() to a file I get a struct with folder, name, date, bytes, and also datenum. How many significant digits do I need to fully store the number correctly, e.g., when I need to compare two files...
Say I print the number to an ascii file: fprintf(fid,'%.xf',mystruct.datenum) what is x supposed to be?
0 个评论
回答(2 个)
dpb
2018-5-7
datenum is a double; hence has 15-16 significant digits; the safest way to store it is as a double but you'll get as close as can with '%.16g'
1 个评论
Jan
2018-5-7
编辑:Jan
2018-5-7
The precision of the date depends on the file system. Linux' ext4 file system supports nanoseconds, NTFS uses 100 nanoseconds, FAT has a resolution of 2 seconds.
T = GetFileTime(FileName, 'native')
T.Write
>> 131499596832223845
Using this integer avoids rounding and precision problems of the doubles used for Matlab's datenum format.
2 个评论
Jan
2018-5-8
There are two possibilities: Either moving the file keeps the dates, that the time is rounded to the precision of the file system. Or the function to move the file (e.g. the operating system) uses the current date as date of creation.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Dates and Time 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!