是否有某种内置方法或简单函数可以将 Duration 转换为hh:mm:ss
格式中的字符串?例如,我正在寻找可以将 Duration 转换123402 ms
为“”字符串的东西2:03
。
问问题
2434 次
2 回答
1
或者,您可以使用 java.util.Formatter 中的标志。
action: function() {
txt = "{%tM dur}.{%tS dur}"
}
对于 dur = "123402ms",这将导致前导 0,如 "02.03"。
于 2009-08-25T16:53:32.863 回答
0
您可以使用 String.valueOf(dur) 将 Duration 转换为字符串。然后,您可以使用 Java 格式化类重新格式化字符串。由于 JavaFX 将持续时间格式化为字符串的方式(例如“123402.0ms”),您必须切断字符串的结尾。如果 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);
}
}
]
}
}
于 2009-08-17T09:18:38.043 回答