java显示Windows UTC时间[英] java display Windows UTC time

问题描述

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

任何帮助都会很棒!

谢谢.

推荐答案

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

someFile.lastModified();

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

并非每个平台都跟踪与文件相关的"相同"时间,并且它们在内部跟踪文件的方式也不同.Java 试图从不同的标准中创建一个连贯的平台的部分尝试使用多态性将平台特定时间转换为幕后的"java 标准".

现在将返回的毫秒转换为 java 时间:

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

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

PS.1601 年 1 月 1 日最初被 COBOL 选为时代,并被微软(可能还有其他人)模仿.之所以选择它,是因为它是操作系统发布时 400 年公历周期的开始.每 400 年,闰年的模式就会重演一次.

本文地址:https://www.itbaoku.cn/post/978539.html