java - 用 Joda-time 进行时间计算?

标签 java android jodatime

我被困在这个任务上。我想在当前时间上添加不同的小时或分钟。因此,用户按下一个按钮,onClick 将提取当前时间,然后添加我决定的小时数和分钟数。目前我让它加了两个小时,但我希望能够在 2 小时14 分钟 左右加减。

这是我目前所拥有的:

public void onClickHere (View v) {

    LocalTime localtime = new LocalTime();
    LocalTime dt = new LocalTime(localtime.getHourOfDay(), localtime.getMinuteOfHour());
    LocalTime twoHoursLater = dt.plusHours(2);

    Text1.setText("Time: " + twoHoursLater);

}

现在上面的代码完成了我想要的一部分。它获取本地时间并增加两个小时。但是它显示了很多额外的数字。秒和毫秒。

有没有办法让我只显示小时和分钟?

通过调用 getHourOfDay()getMinuteOfHour() 它只提取小时和分钟,但它仍然显示 00.000 秒和分钟.

因此,如果我现在按下按钮,它将显示 10:58:00.000。我希望它显示的是 10:58

最终能够增加分钟数,但我认为这是另一个问题,一个更简单的问题,我可以简单地以已经知道如何增加两个小时为例。

希望我已经解释得够清楚了。

最佳答案

您需要使用 DateTimeFormatter ,例如:

DateTimeFormatter formatter = DateTimeFormat.forPattern("HH:mm");
Text1.setText("Time: " + twoHoursLater.toString(formatter));

注意:DateTimeFormatter 是线程安全的,因此您可以将它定义为一个private final static 变量并重用它,而不是每次都创建一个实例onClickHere 被调用。

关于java - 用 Joda-time 进行时间计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14315526/

相关文章:

Android 从最近的应用程序列表中恢复应用程序

java - 无法比较时间范围

java - localdatetime 的 jodatime 间隔

java - 使用 Joda-Time 的语言环境的一周开始

java - Spring 扩展 Authentication 对象以保持 Controller 干燥

java - 在 Lucene 分类器中使用多个叶子

java - 如何在 SWT Java 8 中使用 FXCanvas

android - Kotlin异步任务/Firebase查询,等待结果的最佳方法?

java - 线程安全 InetAddress.isReachable()

android - 如何提取ramdisk.img