如何在android中格式化longs以始终显示两位数

时间:2013-11-29 21:58:14

标签: java android formatting

我有一个倒数计时器,显示从60到0(1分钟倒数计时器)的秒数。当它达到1位数字,如9,8,7 ..它显示9而不是09.我尝试使用String.format("%[B]02d[/B]", x);我将x从long转换为字符串。它不起作用。

我希望等效String.format("%2d", 1)

5 个答案:

答案 0 :(得分:41)

您可以使用DecimalFormat完成此操作:

NumberFormat f = new DecimalFormat("00");
long time = 9;
textView.setText(f.format(time));

<强>输出:

09

或者您也可以使用String.format()

String format = "%1$02d"; // two digits
textView.setText(String.format(format, time));

答案 1 :(得分:6)

使用:text.setText(String.format(" %02d", i));其中i是整数值

答案 2 :(得分:3)

为什么不使用if语句?

String str = x < 10 ? "0" + String.valueOf(x) : String.valueOf(x);

这应该可以解决问题。

答案 3 :(得分:1)

TextView time; 
int hour=0,minute=0,second=0;
time.setText((String.format("%02d", hour))+":"+(String.format("%02d", minute))+":"+(String.format("%02d", second)));

TextView时间

答案 4 :(得分:0)

Akshat Bhai尝试使用它:

tv.setText(new DecimalFormat("##").format(var));