java - 寻找 Java 格式的时间工具
问题描述
我正在寻找一个用于java的时间工具,我可以在其中给出一个以秒或milis为单位的时间,它会以例如方法返回,getSeconds
因此getMinutes
我可以轻松地将文本格式化为Remaining 1 day 2 hours 3 minutes and 4 seconds
. 有人知道吗?
解决方案
一分钟有 60 秒,一小时有 60 分钟,一天有 24 小时,所以:
private static final int SECONDS_IN_MINUTE = 60;
private static final int SECONDS_IN_HOUR = 60 * SECONDS_IN_MINUTE;
private static final int SECONDS_IN_DAY = 24 * SECONDS_IN_HOUR;
然后你只需要继续划分:
class RemainingTime {
private static final int SECONDS_IN_MINUTE = 60;
private static final int SECONDS_IN_HOUR = 60 * SECONDS_IN_MINUTE;
private static final int SECONDS_IN_DAY = 24 * SECONDS_IN_HOUR;
private int totalSeconds, days, hours, minutes, seconds;
public RemainingTime(int totalSeconds) {
this.totalSeconds = totalSeconds;
init();
}
private void init() {
int remainingSeconds = totalSeconds;
days = remainingSeconds / SECONDS_IN_DAY;
remainingSeconds -= days * SECONDS_IN_DAY;
hours = remainingSeconds / SECONDS_IN_HOUR;
remainingSeconds -= hours * SECONDS_IN_HOUR;
minutes = remainingSeconds / SECONDS_IN_MINUTE;
remainingSeconds -= minutes * SECONDS_IN_MINUTE;
seconds = remainingSeconds;
}
public int getDays() { return days; }
public int getHours() { return hours; }
public int getMinutes() { return minutes; }
public int getSeconds() { return seconds; }
}
你像这样使用它:
RemainingTime rt = new RemainingTime(274119);
System.out.println(String.format(
"Remaining %s day(s), %s hour(s), %s minute(s) and %s second(s)",
rt.getDays(), rt.getHours(), rt.getMinutes(), rt.getSeconds()));
输出:
Remaining 3 day(s), 4 hour(s), 8 minute(s) and 39 second(s)
推荐阅读
- android - 当我运行我的应用程序时,只有在第一次运行时才可以
- settings - 助理 API 请求需要“每台设备”的个人结果权限,但我的设备(手工制作)未出现在列表中
- python - 在一个数组中,如果有一个数字列表,我将如何返回一个数字停止增加并开始减少的点,反之亦然?
- visual-studio - Visual Studio 解决方案中的快捷方式
- docker - Ansible playbook 用于更新 daemon.json 并在正在运行的 Kubernetes 集群上重新启动 docker
- python - Zunzun 建议的曲线拟合功能不起作用
- javascript - 具有 2 种方法的对象。方法 A,方法 B。从方法 A 中调用方法 B
- r - 使用 ggpattern 区分分组条形图中的图
- numpy - rasterio masking - 如何在通过掩码移除所有像素时保留平铺
- c# - 在 EF Core 3.1 中加入 where lambda 查询