将 24 小时时间转换为分钟的简单日期格式
simpledateformat coverting 24hr time to minutes
我想转换 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;
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 分钟,a.k.a。 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)
);
我想转换 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;
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 分钟,a.k.a。 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)
);