如何在java中将小数转换为时间。
示例:
Double takttime = 1.08; //Which is 1 Minutes 4 Seconds.
按小时,分钟,秒分隔的结果。
答案 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 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);