我想要24小时转换,例如0748或748,分钟。出于某种原因,当它应该是468分钟时,它将它转换为仅128分钟。
double time = 748;
//parse time into SimpleDateFormat to easily extract hours and minutes
Date date_time_to_minutes = new SimpleDateFormat("HHmm").parse(String.valueOf(time));
//hours extracted from time
double extracted_hours = Integer.parseInt(new SimpleDateFormat("HH").format(date_time_to_minutes));
//minutes extracted from time
double extracted_minutes = Integer.parseInt(new SimpleDateFormat("mm").format(date_time_to_minutes));
//converts the extracted hours into minutes and adds it to the extracted minutes
double minutes = extracted_hours * 60 + extracted_minutes;
答案 0 :(得分:1)
HHmm
日期格式不是7
,而是74
作为小时数,将8.0
作为分钟。插入此代码可以了解正在发生的事情。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(date_time_to_minutes));
输出:
1970-01-04 02:08:00
这是纪元(1970-01-01 00:00:00)之后的3天,2小时和8分钟,比如74小时8分钟。
date_time_to_minutes
的声明成功,大概是因为领先" 0"我补充道。
Date date_time_to_minutes = new SimpleDateFormat("HHmm").parse("0748");
输出:
1970-01-01 07:48:00
解决方案是确保如果小时值小于10,则前导零。
Date date_time_to_minutes = new SimpleDateFormat("HHmm").parse(
new DecimalFormat("0000").format(time)
);