是否有某种内置方法或简单函数可以将Duration转换为hh:mm:ss
格式的字符串?例如,我正在寻找能够将持续时间123402 ms
转换为字符串“2:03
”的内容。
答案 0 :(得分:1)
或者,您可以使用java.util.Formatter中的标志。
action: function() {
txt = "{%tM dur}.{%tS dur}"
}
这将导致前导0,如“02.03”,dur =“123402ms”。
答案 1 :(得分:0)
您可以使用String.valueOf(dur)将持续时间转换为字符串。然后,您可以使用Java格式化类重新格式化String。由于JavaFX将持续时间格式化为字符串(例如'123402.0ms'),因此必须切断String的结尾。如果JavaFX有一个Long.valueOf(dur)函数,那么这将更容易。
见下面的示例:
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.scene.control.Button;
import java.text.SimpleDateFormat;
import java.util.Date;
var fmt = new SimpleDateFormat("m:ss");
var dur: Duration = 123402ms;
var txt: String = String.valueOf(dur);
Stage {
title : "Duration Switch"
scene: Scene {
width: 400
height: 200
content: [
Text {
font : Font {
size: 24
}
x: 10, y: 30
content: bind "Duration={txt}"
},
Button {
translateY: 140
text: "Switch"
action: function() {
var durStr = String.valueOf(dur);
durStr = durStr.substring(0, durStr.indexOf("."));
var date = new Date(Long.parseLong(durStr));
txt = fmt.format(date);
}
}
]
}
}