为了账号安全,请及时绑定邮箱和手机立即绑定

如何将分钟添加到我已经拥有的时间戳中?

如何将分钟添加到我已经拥有的时间戳中?

拉风的咖菲猫 2022-08-03 10:58:53
我搜索了很多,但我找到了一种方法来增加或减少日历实例中的时间,该实例给出了当前时间。如何从给定文件的上次修改时间中减去时间?更新:我一直在使用Java1.4。这就是我找不到任何方法来做到这一点的原因。我将修改后的日期提取为字符串。我想将此字符串服从I转换为日历对象,以便我更容易将日历对象的添加()应用于时间。我一直面临着同样的问题。这种方法是否正确?你能不能帮忙
查看完整描述

3 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

如果您不必使用日历,那么只需使用自Java8以来可用的新Java DateTime API https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html

在那里,你有非常好的便利方法,比如加/减等。

例如,您可以简单地编写

  LocalTime now = LocalTime.now();
  now.minusHours(2);


查看完整回答
反对 回复 2022-08-03
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

NIO 和 java.time

    Path filePath = Paths.get("myFile.txt");

    Duration timeToSubtract = Duration.ofMinutes(7);


    FileTime lastModified = Files.getLastModifiedTime(filePath);

    Instant lastModifiedInstant = lastModified.toInstant();

    Instant timeBeforeLastModified = lastModifiedInstant.minus(timeToSubtract);

    System.out.println("Time after subtraction is " + timeBeforeLastModified);

刚才在我的计算机上运行,我得到了这个输出:


减法后时间是 2017-02-18T03:06:04Z

末尾的 表示 UTCInstant::toString(在追加到字符串时隐式调用)始终在 UTC 中生成字符串。ZInstant

我正在使用现代Java NIO APIjava.time,现代Java日期和时间API。在这种情况下,NIO为我们提供了一个FileTime,表示上次修改文件的时间。为了做我们的时间数学运算,我首先将其转换为Instant,这是java.time的中心类。的方法减去持续时间(时间量),并返回一个新对象。minusInstantInstant

不要使用 .这个班级设计得很差,早已过时。Calendar

链接:Oracle教程:日期时间解释如何使用java.time。


查看完整回答
反对 回复 2022-08-03
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

时间戳(as)可以在实例中设置。在那之后,你可以计时。longCalendaradd()


public void time() {

    long timeStamp = 31415926535L;


    Calendar calendar = Calendar.getInstance();


    calendar.setTimeInMillis(timeStamp);


    // Substract 1 hour

    calendar.add(Calendar.HOUR, -1);


    // Add 20 minutes

    calendar.add(Calendar.MINUTE, 20);

}


查看完整回答
反对 回复 2022-08-03
  • 3 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信