java将小时和分钟转换为毫秒,并返回为HH:mm:ss格式
使用TimeUnit
我想用以下代码将Hours
和Minutes
转换成Milliseconds
:
int hours = 01, minutes = 0;
long milliseconds = TimeUnit.SECONDS.toMillis(TimeUnit.HOURS.toSeconds(hours) + TimeUnit.MINUTES.toSeconds(minutes));
适用于3600000
毫秒
并使用SimpleDateFormat
返回HH:mm:ss
格式:
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
Date date = new Date(milliseconds);
String returnFormat = formatter.format(date); //Final Result.
这给了我一个09:59:59
的结果,这不是预期的输出
我很困惑,上面的代码怎么了?我期待01:00:00
的输出
更新:
实际上,我正在使用上面的代码使用Handler post.delayed
函数创建一个简单的倒计时计时器
...
@Override
public void run() {
milliseconds -= 1000; //Remove 1 Seconds
handler.postDelayed(this,1000); //Delay in 1 Seconds
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss"); //Create Time Formatting
Date date = new Date(milliseconds); //Put the milliseconds into Format
String returnFormat = formatter.format(date));
Log.w("COUNTDOWN", returnFormat);
}
# 1 楼答案
这是因为你的时区不同。通过设定时区GMT,您将能够获得预期结果。使用以下代码片段