Java十进制到时间转换

时间:2014-03-12 16:58:30

标签: java

如何在java中将小数转换为时间。

示例:

Double takttime = 1.08;  //Which is 1 Minutes 4 Seconds.

按小时,分钟,秒分隔的结果。

5 个答案:

答案 0 :(得分:3)

试试这个:

double takttime = 1.08;

int t = (int) ( 100 * takttime * 60 );

int hour = t/3600;
t %= 3600;
int min = t/60;
t %= 60;
int sec = t;

或......也许:

double takttime = 1.08;

int t = (int) ( 100 * takttime);

int min = t/100;
int sec = 60 * (t%100)

取决于您的确切需求。

答案 1 :(得分:1)

假设takeTime是以分钟为单位的时间。然后:

double taktTime = 1.8;
long timeInMilliSeconds = (long) Math.floor(taktTime * 60 * 1000);
Date date = new Date(timeInMilliSeconds);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(sdf.format(date));

答案 2 :(得分:1)

java.time,现代的Java日期和时间API

从Java 9开始:

%

输出为:

小时:0;分钟:1;秒:4

double takttime = 1.08; //Which is 1 Minutes 4 Seconds. double nanos = takttime * Duration.ofMinutes(1).toNanos(); Duration dur = Duration.ofNanos(Math.round(nanos)); long hours = dur.toHours(); int minutes = dur.toMinutesPart(); int seconds = dur.toSecondsPart(); System.out.format("Hours: %d; minutes: %d; seconds: %d%n", hours, minutes, seconds); 的{​​{1}}方法将整个持续时间转换为该单位,而toXxx从转换中排除了较大的单位。例如,使用我们的Duration toXxxPart将产生64秒,持续1分钟4秒。如我们所见,Duration仅产生4秒钟。

教程链接: Oracle tutorial: Date Time解释了如何使用java.time。

答案 3 :(得分:0)

在Kotlin中,将小数转换为时间格式:

val decimalValue = 0.4444555
val date = Date((decimalValue * 24L * 60L * 60L * 1000L).roundToLong())
val formatTime = SimpleDateFormat("HH:mm")
formatTime.setTimeZone(TimeZone.getTimeZone("UTC"))
println(formatTime.format(date))

希望这项功能有用,谁想在 KOTLIN 中实现。

答案 4 :(得分:0)

    long hours = Math.round(Math.floor(hoursInDecimal));
    long minutes = Math.round(Math.floor((hoursInDecimal - hours) * 60));
    long seconds = Math.round(((((hoursInDecimal - hours) * 60) - minutes) * 60));
    
    return String.format("%02d:%02d:%02d", hours, minutes, seconds);