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

我搜索了很多,但我找到了一种方法来增加或减少日历实例中的时间,该实例给出了当前时间。如何从给定文件的上次修改时间中减去时间?

更新:我一直在使用Java1.4。这就是我找不到任何方法来做到这一点的原因。我将修改后的日期提取为字符串。我想将此字符串服从I转换为日历对象,以便我更容易将日历对象的添加()应用于时间。我一直面临着同样的问题。这种方法是否正确?你能不能帮忙


拉风的咖菲猫
浏览 137回答 3
3回答

Smart猫小萌

如果您不必使用日历,那么只需使用自Java8以来可用的新Java DateTime API https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html在那里,你有非常好的便利方法,比如加/减等。例如,您可以简单地编写  LocalTime now = LocalTime.now();   now.minusHours(2);

慕虎7371278

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末尾的 表示 UTC。Instant::toString(在追加到字符串时隐式调用)始终在 UTC 中生成字符串。ZInstant我正在使用现代Java NIO API和java.time,现代Java日期和时间API。在这种情况下,NIO为我们提供了一个FileTime,表示上次修改文件的时间。为了做我们的时间数学运算,我首先将其转换为Instant,这是java.time的中心类。的方法减去持续时间(时间量),并返回一个新对象。minusInstantInstant不要使用 .这个班级设计得很差,早已过时。Calendar链接:Oracle教程:日期时间解释如何使用java.time。

慕的地6264312

时间戳(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);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java