-2

我有十进制格式的天,例如 22.5 天我想使用 java 将其转换为 22 天 12 小时

在上述问题中需要帮助。先感谢您

4

2 回答 2

6

您可以使用 SimpleDateFormat 但简单的数学可能更简单。

double days = 22.5;
long hours = Math.round(days * 24);
String text = hours/24 + " days, " + hours % 24 +" hours.";

添加分钟和秒你可以做到。

double days = 22.5;
long seconds = Math.round(days * 86400);
String text = seconds/86400 + " days, "
           + seconds / 3600 % 24 + " hours, "
           + seconds / 60 % 60   + " minutes, "
           + seconds % 60        + " second.";

使用 SimpleDateFormat

SimpleDateFormat SDF = new SimpleDateFormat("dd' days, 'hh' hours'");
SDF.setTimeZone(TimeZone.getTimeZone("GMT"));
String text = SDF.format(new Date(Math.round(days * 86400000)));

注意:SimpleDateFormat 最多只能使用 31 天。;)

于 2013-01-23T14:09:52.750 回答
1

这是一个模糊的答案,但只是为了向您展示它非常简单:

int a=22.5,hr,days;
int days=22.5;
float t1=22.5;
(t1-days)*24=...

:)

于 2013-01-23T14:15:22.723 回答