java记录访问时间_在java中记录上次访问时间和上次修改时间?

java记录访问时间_在java中记录上次访问时间和上次修改时间?首先,让我们关注这些事物的含义.访问–上次读取文件的时间,即上次访问文件数据的时间.修改–上次修改文件(内容已被修改),即文件数据上次修改的时间.更改–文件的元数据的最后一次更改(例如,权限),即上次更改文件状态的时间.编辑.访问时间正在改变.我建议你使用Thread.sleep(100)或其他东西,然后看看这个问题是否仍然存在.如果是这样,罪魁祸首就必须是您正在运行的操作系统,因为J…

大家好,又见面了,我是你们的朋友全栈君。

首先,让我们关注这些事物的含义.

访问 – 上次读取文件的时间,即上次访问文件数据的时间.

修改 – 上次修改文件(内容已被修改),即文件数据上次修改的时间.

更改 – 文件的元数据的最后一次更改(例如,权限),即上次更改文件状态的时间.

编辑.

访问时间正在改变.我建议你使用Thread.sleep(100)或其他东西,然后看看这个问题是否仍然存在.

如果是这样,罪魁祸首就必须是您正在运行的操作系统,因为Java只是从文件系统中读取. @Serge Ballesta的注释应该让我们了解Windows NTFS有一个选项,可以出于性能原因禁止将对文件属性所做的每个更改写回硬盘驱动器.实际上还有更多.

从[docs]起,

NTFS delays updates to the last access time for a file by up to one hour after the last access. NTFS also permits last access time updates to be disabled. Last access time is not updated on NTFS volumes by default.

以下是在mac os x上运行脚本的一些数据.

calling getFileInfo() at: 11.4.2016 3:13:08:738

accessTime : 11.4.2016 3:12:53:0

modifiedTime : 29.10.2015 1:49:14:0

——————–

sleeping for 100ms

——————–

calling readFIleData() at: 11.4.2016 3:13:08:873

——————–

sleeping for 100ms

——————–

re-calling getFileInfo() at: 11.4.2016 3:13:08:977

accessTime : 11.4.2016 3:13:08:0

modifiedTime : 29.10.2015 1:49:14:0

——————–

sleeping for 100ms

——————–

re-calling getFileInfo() at: 11.4.2016 3:13:09:81

accessTime : 11.4.2016 3:13:08:0

modifiedTime : 29.10.2015 1:49:14:0

为了提高清晰度,您可以将毫秒数转换为更具可读性的内容.以下代码片段将详细说明.

long accessTimeSinceEpoch = Files.readAttributes(file, BasicFileAttributes.class).lastAccessTime().toMillis();

Calendar calendar = Calendar.getInstance();

calendar.setTimeInMillis(accessTimeSinceEpoch);

int mYear = calendar.get(Calendar.YEAR);

int mMonth = calendar.get(Calendar.MONTH);

int mDay = calendar.get(Calendar.DAY_OF_MONTH);

int mHour = calendar.get(Calendar.HOUR);

int mMin = calendar.get(Calendar.MINUTE);

int mSec = calendar.get(Calendar.SECOND);

int mMilisec = calendar.get(Calendar.MILLISECOND);

String st = mDay + “.” + mMonth + “.” + mYear + ” ” + mHour + “:” + mMin + “:” + mSec + “:” + mMilisec;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156881.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 国外常用的免费DNS域名解析服务器「建议收藏」

    国外常用的免费DNS域名解析服务器「建议收藏」在国内注册的域名默认使用的是国内域名注册商提供的DNS服务器,国内的DNS服务器可能受政策的影响停止解析域名,网络上传说以后没有BeiAn的域名国内将不给解析。为了避免国内的这些政策,建议使用国外的域名服务:如果您还没有注册域名,请不要在国内注册域名。如果您已经在国内注册了域名,但由于国内注册商赖皮,不给您转移密码,您还可以使用国外的免费DNS服务器。国外免费DNS

    2022年6月22日
    184
  • jQuery+CSS3文字跑马灯特效

    jQuery+CSS3文字跑马灯特效是一款将跑马灯背景制作为3D立方体效果,文字在上面移动时,就像是文字投影到墙壁上,在转角出会改变运动方向。效果展示 http://hovertree.co

    2021年12月27日
    37
  • 使用e.target.dataset出现的问题

    使用e.target.dataset出现的问题

    2021年3月12日
    150
  • WPF Window 窗口获得焦点和失去焦点事件

    WPF Window 窗口获得焦点和失去焦点事件Window窗口获得焦点和失去焦点事件(窗口变为背景窗口、窗口切换等都引起窗口焦点失去)Activated获得焦点事件和Deactivated失去焦点的事件:Activated:获得焦点(首次打开软件时;由别的软件切换回当前软件时;点击当前软件在任务栏的按钮时)Deactivated:失去焦点,与Activated正好相反,(Deactivated=de+activated)使用方法有两种:第一种是在XAML中声明,然后在后台书写执行代码:<W…

    2022年6月23日
    24
  • js向数组指定位置添加元素[通俗易懂]

    js向数组指定位置添加元素[通俗易懂]一、JavaScriptsplice()方法splice()方法向/从数组中添加/删除项目,然后返回被删除的项目。方法实例//在数组指定位置插入varfruits=[“Banana”,”Orange”,”Apple”,”Mango”];fruits.splice(2,0,”Lemon”,”Kiwi”);//输出结果//Banana,Orange…

    2022年8月10日
    33
  • 2021Eclipse下载与安装教程

    2021Eclipse下载与安装教程2021Eclipse下载与安装教程2021Eclipse下载与安装教程具体步骤如下:1.下载1.1官方下载1.2国内镜像下载【推荐】2.安装3.安装插件2021Eclipse下载与安装教程具体步骤如下:1.下载Eclipse软件下载可以在Eclipse官方下载,也可以在国内镜像地址下载。由于Eclipse官方地址服务器在国外,下载速度比较慢,国内镜像地址下载速度会快很多。1.1官方下载官方下载地址:https://www.eclipse.org/downloads/packages/r

    2022年6月6日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号