使用历元时间更改文件';使用java的时间戳

使用历元时间更改文件';使用java的时间戳,java,epoch,unix-timestamp,Java,Epoch,Unix Timestamp,我正在开发一个运行在linux机器上的java应用程序,它应该将文件的时间戳更改为另一个时间戳,该时间戳以历元的形式存储。 本地文件系统中存在需要更改其时间戳的文件 Ex-localFile.txt,其时间戳显示为17 Jul 5 20:03,需要更改为epoch“1341446400000” 我写过这样的代码- private void modifyTime(final String localFile, final long originalEpoch) throws IOExceptio

我正在开发一个运行在linux机器上的java应用程序,它应该将文件的时间戳更改为另一个时间戳,该时间戳以历元的形式存储。 本地文件系统中存在需要更改其时间戳的文件

Ex-localFile.txt,其时间戳显示为17 Jul 5 20:03,需要更改为epoch“1341446400000”

我写过这样的代码-

private void modifyTime(final String localFile, final long originalEpoch) throws  IOException {
    String getDateFromEpoch = "date -d@" + String.valueOf(originalEpoch);
    //getDateFromEpoch is returned in form - "Thu Jul  5 20:03:32 UTC 2012"
    Process process = runCommand(getDateFromEpoch);
    InputStream iStream = process.getInputStream();
    BufferedReader bufReader = new BufferedReader(new InputStreamReader(iStream));
    String originalDate = bufReader.readLine();
    bufReader.close();

    String touch = "touch -c -d " + originalDate + " " + localFile;
    runCommand(touch);
}

private Process runCommand(final String cmd) throws IOException {
    Process p = Runtime.getRuntime().exec(cmd);
    try {
        p.waitFor();
    } catch (InterruptedException e) {
        // ignore this exception
    }
    return p;
}
运行
“date-d@”+String.valueOf(originalEpoch)返回类似于的内容,如2012年7月5日星期四20:03:32 UTC。使用此in-touch命令对我不起作用


有办法吗?

听起来你只是想修改File.setLastModified


)

使用下面的答案让你的生活变得更轻松。。。