Java中构造函数中的日期

use*_*510 3 java constructor

我有一个构造函数的类:

...
Date d1;
Date d2;
public DateClass(Date d1, Date d2) {
   this.d1 = d1;
   this.d2 = d2;
}
...
Run Code Online (Sandbox Code Playgroud)

然后在另一个类中我想使用这个构造函数:

...
DateClass d = new DateClass(what I should I write here to create Date in format mm-dd-yyyy);
System.out.println(d);
...
Run Code Online (Sandbox Code Playgroud)

谢谢!PS这不是家庭作业的一部分.我真的不知道该怎么做.

Jon*_*eet 6

Date具备的格式.它只是一个瞬间,没有相关的日历或时区.当您需要格式化a时Date,通常会使用DateFormat告知日历系统使用的时间段,将时刻转换为本地时间等的时区.

当您Date在第二个片段中隐式地打印出来时toString(),它将始终使用系统默认时区和不可修改的格式.(它可能会或可能不会随系统区域设置而改变 - 我不确定).基本上应该用于调试.如果你想对文本进行任何控制,那DateFormat就是它所在的位置.

如果您希望能够简单地构建年/月/日等的日期值,我建议您查看Joda Time - 这是一个比Java更精确的日期/时间API.它使各种事情变得更加清洁,包括"当地时间","当地日期","当地日期和时间","特定时区的日期和时间"等的分离.