java显示Windows UTC时间

Windows将FileTime内部存储为自1.1.1601 UTC以来的100纳秒数作为64位字段,是否可以让java打印出当前数字? 只是寻找一个例子,因为我找不到办法。 我想把这个号码打印出来?

任何帮助都会很棒!

谢谢。

大约

long diff1601to1970 = 315532800 * 1000000000; // <-- diff in nanoseconds(1/1/1601 to 1/1/1970) long currentFrom1970 = System.currentTimeMillis() * 1000000; long currentFrom1601 = diff1601to1970 + currentFrom1970; 

Java不提供对原始文件时间的直接访问,因此如果您要求lastModified时间

 someFile.lastModified(); 

您将获得上次修改文件的时间,以自纪元(1970年1月1日格林威治标准时间00:00:00)开始的毫秒数测量,如果文件不存在或发生I / O错误,则返回0L

并非每个平台都跟踪与文件相关的“相同”时间,以及它们如何在内部跟踪它们是不同的。 Java尝试使用不同标准构建一个连贯的平台的一部分使用多态来将平台特定时间转换为封面下的“java标准”。

现在将millis转换为java时间:

 java.util.Date date = new java.util.Date(millis); 

从那里你可以使用标准的i / o例程来显示和格式化日期(DateFormat等)

PS。 最初由COBOL选择1/1/1601作为时代,并由微软(可能还有其他人)模仿。 选择它的原因是因为它是操作系统发布时400年格里高利历周期的开始。 每隔400年,闰年的模式就会重演。