gpt4 book ai didi

java - 将毫秒格式化为 hh :mm:ss format

转载 作者:太空狗 更新时间:2023-10-29 15:53:31 27 4
gpt4 key购买 nike

我有毫秒值,想以 hh:mm:ss 格式显示从当前毫秒值减去 5 分钟的时间。

代码

String str = String.format("%02d:%02d:%02d", 
TimeUnit.MILLISECONDS.toHours((cal.getTimeInMillis()-300000)),
TimeUnit.MILLISECONDS.toMinutes(cal.getTimeInMillis()-300000) -
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(cal.getTimeInMillis()-300000)),
TimeUnit.MILLISECONDS.toSeconds(cal.getTimeInMillis()-300000) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(cal.getTimeInMillis()-300000)));

Toast.makeText(getApplicationContext(), "Alarm Set."+str, Toast.LENGTH_LONG).show()

现在输出

闹钟设置。 386467:25:00

需要输出

闹钟设置。 07:25:00

如您所见,minutesseconds 正在正常检索,但 hours 存在一些问题。

附言

1.我引用了this post .他们说它工作正常。但不知道为什么在我的情况下不行。

2.我确定我想获得的小时值是什么,即 07,因为我已经使用 Calendar.HOUR 设置了该值,如果我使用 cal.get(Calendar.HOUR).cal 当然是 Calendar 类的对象。

替代解决方案

 SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
String str1 = sdf.format(new Date(cal.getTimeInMillis()-300000));
Toast.makeText(getApplicationContext(), "Alarm Set."+str1, Toast.LENGTH_LONG).show();

最佳答案

检查此解决方案。更优雅

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());
String str = sdf.format(new Date(System.currentTimeMillis()));
Toast.makeText(getApplicationContext(), "Alarm Set."+str, Toast.LENGTH_LONG).show()

关于java - 将毫秒格式化为 hh :mm:ss format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21482969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com