simpledateformat转换24小时到分钟

时间:2015-02-07 00:27:58

标签: java android parsing

我想要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;

1 个答案:

答案 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)
);