2013-01-23 26 views
-2

我有天像22.5天十进制格式 我想用java日期格式的Java十进制日天数,和小时

在上面的问题需要帮助,将其转换像22天12小时。 预先感谢您

+2

[?你尝试过什么,请(http://mattgemmell.com/2008/12/08/what-you-you-tried /) – Fallup

+1

为什么不写一点自己的方法来做到这一点? – MrSmith42

+0

@ user1328994如果你已经给出了一个你已经尝试过的例子,你会得到更好的回应。 –

回答

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天有效。 ;)

+2

这也可以很容易地扩展到支持*分*和*秒* ... – MrSmith42

+0

+1真的很好的解决方案:)我删除了我的**奇**解决方案:P – PermGenError

+0

我想你的意思'字符串文本=秒/ ......“而不是”小时“。 – Tamer

1

这是一个模糊的答案,但只是为了证明你,这是很简单的:

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

:)