Get creation time of file in milliseconds

Is there a way to get the creation time of a file in windows in a higher accuracy? I want to get the creation time of an mp4-video in milliseconds. Is this possible?


Solution 1:

Timestamp resolution

The creation timestamp of a file in windows depends on the file system:

  • FAT/VFAT has a maximum resolution of 2s

  • NTFS has a maximum resolution of 100 ns


wmic solution

You can use wmic to retrieve the file creation date to the nearest microsecond.

Example:

F:\test>wmic datafile where name="f:\\test\\test.txt" get creationdate | findstr /brc:[0-9]
20150329221650.080654+060

The creationdate 20150329221650.080654+060 is a timestamp, with the following format:

yyyymmddHHMMSS.xxxxxxsUUU

where:

  • yyyy Four-digit year (0000 through 9999).

  • mm Two-digit month (01 through 12).

  • dd Two-digit day of the month (01 through 31).

  • HH Two-digit hour of the day using the 24-hour clock (00 through 23).

  • MM Two-digit minute in the hour (00 through 59).

  • SS Two-digit number of seconds in the minute (00 through 59).

  • xxxxxx Six-digit number of microseconds in the second (000000 through 999999)

  • s Plus sign (+) or minus sign (-) to indicate a positive or negative offset from Coordinated Universal Times (UTC).

  • UUU Three-digit offset indicating the number of minutes that the originating time zone deviates from UTC.


stat solution

You can also use stat (from a cygwin or mingw installation).

Example:

DavidPostill@Hal /f/test
$ stat test.txt | grep Birth
 Birth: 2015-03-29 22:16:50.080654200 +0100

dir output for comparison

F:\test>dir /t:c test.txt
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test

29/03/2015  22:16                32 test.txt
               1 File(s)             32 bytes
               0 Dir(s)  1,798,546,849,792 bytes free

Further Reading

  • wmic
  • Working with Dates and Times using WMI
  • An A-Z Index of the Windows CMD command line is an excellent reference for all things Windows cmd line related.

Solution 2:

A clever way is demonstrated here: https://stackoverflow.com/questions/5180592/showing-ntfs-timestamp-with-100-nsec-granularity

It's using VBScript to query WMI's CIM database and return the FILETIME structure associated to a file.

There are also open source tools that can inspect a media file's metadata, such as EXIFtool which is geared towards managing the metadata of media created by digital cameras.

Solution 3:

I found a way how to obtain this in Matlab:

You can use the GetFileTime function written by Jan Simon. If you don't want to compile your own mex files, you can also download the compiled files here.

It is not as exact as using wmic (only ms) but for my purpose it is suitable.