【问题标题】:How to convert the file last modified timestamp to a date?如何将文件最后修改的时间戳转换为日期?
【发布时间】:2011-07-28 09:44:23
【问题描述】:

如何将File#lastModified() 转换为真实日期?格式并不重要。

【问题讨论】:

  • 重开,因为这个问题是关于转换成java.util.Date的问题。

标签: java date


【解决方案1】:
Date d = new Date(file.lastModified());

lastModified() 返回自 1970-01-01 以来的毫秒数,Date 类也以相同的方式存储其时间。 Date(long) 构造函数需要这些毫秒,并用它初始化 Date

【讨论】:

  • 使用 java.nio.file.attribute.FileTime 时,必须调用 toMillis()
  • lastModified() returns the milliseconds since 1970-01-01 使用什么时区?我在将日期发送到浏览器上运行的 javascript 时遇到问题,并且日期比服务器日期大一天。
  • @ps0604:我相信“当前”时区,可以通过 System.getProperty("user.timezone") 找到
【解决方案2】:
  1. 获取上次修改的时间戳,如the duplicate of your question中所述

  2. 创建一个新的Date 对象或Calendar 对象。 new Date(timestamp)。或Calendar.getInstance(),然后致电setTimeInMillis(timestamp)。顾名思义,时间戳实际上是毫秒数(从 1970 年 1 月 1 日开始)

  3. 然后您可以通过java.text.SimpleDateFormat格式化日期

【讨论】:

    【解决方案3】:

    你得到的是一个长数字,表示从 1970 年 1 月 1 日起经过的毫秒数。这是表示日期的标准方式。

    试试这个:

    java.util.Date myDate = new java.util.Date(theFile.lastModified());
    

    现在你手头有一个 Date 对象。

    您可以使用SimpleDateFormat 以更可爱的方式打印该日期。

    【讨论】:

      【解决方案4】:

      您只需使用SimpleDateFormat 类将long 转换为date。 只有你执行代码:

      new SimpleDateFormat("dd-MM-yyyy HH-mm-ss").format(
          new Date(new File(filename).lastModified()) 
      );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-24
        • 2012-04-10
        • 2016-11-26
        • 2019-04-03
        • 1970-01-01
        相关资源
        最近更新 更多