相反,例如“9/1/1996”我希望我的代码显示“09/01/1996”。我不知道如何更具体地描述我的问题。这是我的MyDate类的代码:
public class MyDate {
private int year;
private int month;
private int day;
public MyDate(int y, int m, int d){
year = y;
month = m;
day = d;
System.out.printf("I'm born at: %s\n", this);
}
public String toString(){
return String.format("%d/%d/%d", year, month, day);
}
}
这是我的主要方法:
public class MyDateTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MyDate birthday = new MyDate(31,12,1995);
}
}
p.s我知道导入日历有一种方法,但我宁愿这样做。
答案 0 :(得分:3)
根据您的问题,您似乎使用自定义类来表示日期。但您可以使用内置java.util.Date
类来表示或比较任何类型的日期。因此,您可以使用DateFormat
显示格式化的日期时间。请考虑以下示例。
Date date = //code to get your date
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
System.out.println(dateFormat.format(date));
<强>输出:强>
13/10/2015
此外,您还应指定DateFormat
的模式。使用下表来表示日期格式字符。
如果您仍然需要使用魔法MyDate
类
您可以使用前导零指定的System.out.printf
,如下所示。
System.out.printf("%02d/%02d/%04d", date, month, year);
答案 1 :(得分:1)
id | user_id | created_datetime
1 | 34 | '2015-09-10'
2 | 34 | '2015-10-11'
3 | 34 | '2015-05-23'
4 | 34 | '2015-09-13'
5 | 159 | '2015-10-01'
6 | 159 | '2015-10-02'
7 | 159 | '2015-10-03'
8 | 159 | '2015-10-06'
字符串格式化输出。
答案 2 :(得分:1)
使用
时,您还应导入此import java.text.SimpleDateFormat; import java.text.DateFormat;
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
System.out.println(dateFormat.format(date));
答案 3 :(得分:1)
您可以将String.format
的格式字符串更改为使用前导零填充:
return String.format("%d/%02d/%02d", year, month, day);
0
表示使用前导零填充输出2
表示输出应为2个字符宽(日和月)答案 4 :(得分:1)
这是一个数字格式问题。在&#39; d之前在%d中,您可以设置数字字段的长度,如果您想要前导零而不是前导空格,那么您可以添加&#39; 0&#39; 0在那之前。因此,带有前导零的2位数字段为%02d
。
所以你的代码变成了:
public String toString() {
return String.format("%04d/%02d/%02d", year, month, day);
}