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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 《5》CentOS7.0+OpenStack+kvm云平台的部署—组态Horizon[通俗易懂]

    《5》CentOS7.0+OpenStack+kvm云平台的部署—组态Horizon

    2022年1月18日
    48
  • jenkins自动触发构建_秒级定时触发器

    jenkins自动触发构建_秒级定时触发器前言跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行。jenkins的定时任务是用的crontab语法定时构建语法

    2022年7月29日
    9
  • pycharm使用anaconda环境可以直接导入包吗_anaconda pycharm环境配置

    pycharm使用anaconda环境可以直接导入包吗_anaconda pycharm环境配置PyCharm使用Anaconda环境使用pycharm进行python脚本开发,特别是进行科学计算时,需要引入大量的第三方脚本,此时如果每次都需要去逐一下载,无疑浪费了许多时间。这时可以使用Anaconda来快速的搭建一个开发环境什么是AnacondaAnaconda(官方网站)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。上图为Anaconda完成安装之后的页面,可以看到右侧已经

    2022年8月29日
    1
  • MySQl 忘记密码怎么办?

    MySQl 忘记密码怎么办?MySQl忘记密码怎么办?我们在安装使用MySQl时,有时可能避免不了忘记密码,如果你忘记密码,可以按照如下方案进行操作:找到my.ini文件my.ini文件为MySQl设置文件,如果你是默认的安装地址,文件在C:\ProgramData\MySQL\MySQLServer5.7下但是ProgramData常规状态下是隐藏的设置权限认证跳过也就是在[my…

    2022年5月13日
    38
  • 传统线程技术(一)

    传统线程技术(一)

    2022年1月25日
    39
  • plsql developer 使用技巧[通俗易懂]

    plsql developer 使用技巧[通俗易懂] Oracle数据库相信已成为很多企业构建自身关键业务的重要后台支撑,也是众多开发人员常常采用的后台。但Oracle自己提供的一套客户端工具不是很好用,极大的影响了工作效率,幸好现在有了PL/SQLDeveloper这款工具。现在越来越多的开发人员成了它的忠实fans。本文就是立足于实用的基础上,总结了了改工具的常用技巧:   1.记住登陆密码   为了工作方便希望PL/SQLDe…

    2022年5月18日
    28

发表回复

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

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