1

0如果日期是个位数,我想在日期前添加一个。所以我做了一个代码:

public class Zero {

    /**
    * @param args
    */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String zero="0";
        Calendar cal = new GregorianCalendar();
        int day1 = cal.get(Calendar.DAY_OF_MONTH);
        String seven1=Integer.toString(day1);
        System.out.println(""+seven1);
        System.out.println(""+day1);
        String added=zero.concat(seven1);
        System.out.println(""+added);
        int change=Integer.parseInt(added);
        System.out.println(""+change);
    }

}

所以当我打印change它时,它只打印707。实际上我想制作int 07而不是7. 那么打印应该做哪些修改07呢?

注意- 我没有if-else故意提到检查一位数或多位日期,因为它没有问题!

4

6 回答 6

5

使用SimpleDateFormat格式化日期。

你的模式将是dd

SimpleDateFormat sdf = new SimpleDateFormat("dd");
System.out.println(sdf.format(new Date()));
于 2012-08-07T16:56:24.103 回答
1

试试这个SimpleDateFormat

System.out.println(new SimpleDateFormat("dd").format(new Date()));
于 2012-08-07T17:10:49.850 回答
0

您是否考虑过使用SimpleDateFormat对象?这将使您对格式有高度的控制。该文本dd将为您提供一个零填充的日期值。

于 2012-08-07T16:58:15.943 回答
0

尝试使用http://docs.oracle.com/javase/1.4.2/docs/api/java/text/DecimalFormat.html

正确的用法是

int day = Calendar.Day_OF_Month;
DecimalFormat df = new DecimalFormat("00"); 
System.out.println(df.format(day)); 

另外,不要忘记 java 月份从 0 开始:/

于 2012-08-07T16:58:21.137 回答
0

一个快速的解决方案是:

int change = Integer.parseInt(added);
if (change < 10) {
   System.out.println("0" + change);
} else {
   System.out.println(change);
}

然而,更好的解决方案是使用NumberFormat 类

于 2012-08-07T16:59:48.537 回答
0
public String addZero(String input) {
    if(input.length() == 1)
        return "0" + input;
    return input;
}

如果字符串为 1 位,该方法只会在字符串的开头添加一个零,因此如果您将其交给“1”,它将返回“01”,如果您将其交给“11”,它将返回“11”。我想这就是你想要的。

于 2012-08-07T16:56:02.093 回答