2013-04-25 48 views
0

如何阻止整数在时间内丢弃零?我试过格式化它截止日期下降为零

String.format("%02d", minutes); 

但它不工作,我敢肯定它很简单!

Date dt = new Date(); 
int hours = dt.getHours(); 
int minutes = dt.getMinutes(); 
String curTime = hours + ":" + minutes; 
String.format("%02d", minutes); 
updatedat.setText("Updated at " + curTime); 
+6

为什么AREN你使用SimpleDateFormat吗?当你不使用结果时,你期望什么时候调用'String.format(“%02d”分钟)? – 2013-04-25 15:12:40

+3

哦,并且请注意'getHours'和'getMinutes'都被弃用的事实。你应该使用'日历' - 或理想的乔达时间。 – 2013-04-25 15:13:49

回答

5

改为使用SimpleDateFormat对象格式化日期/时间。

Date date = new Date(); // initializes to current time 
DateFormat df = new SimpleDateFormat("h:mm"); 
updatedat.setText("Updated at " + df.format(date)); 

了解更多关于SimpleDateFormat和格式规范here

0

其中包括0的简单方法是使用功能,如:

public String TwoCh(int i) { String s= "0" + Integer.toString(i); return s.substring(s.length() - 2); } 

,然后(尽管事实上调用getHours和getMinutes都是不建议使用),你可以做这样的事情

String curTime = TwoCh(dt.getHours())+ ":" + TwoCh(dt.getMinutes()); 
1

它不工作的原因是因为String.format("%02d", minutes);是一个函数,返回字符串

对于你的情况如果分钟是8,String.format("%02d", minutes);将返回08

所以,对于这个工作,你得有这样的:

String curTime = hours + ":" + String.format("%02d", minutes); 

我也同意你不应该在格式化的时候像这样,使用日期格式。