我正在开始Java,我被要求写一个类myDate。这样的班级有年,月,日的字段。
我应该使用以下语法来设置日期:
setDate(long timeElapsed)
我知道我可以做到以下几点:
Date tempDate = new Date();
long lngDate = tempDate.getTime();
System.out.println("lngDate: " + lngDate);
如何计算给定年,月和日的“long timeElapsed”参数?
现在,我应该使用GregorianCalendar来显示日期,我已经完成了以下日期:
GregorianCalendar cal = new GregorianCalendar(year, month, day);
System.out.println("Year: " + cal.YEAR);
System.out.println("Month: " + cal.MONTH);
System.out.println("Day: " + cal.DAY_OF_MONTH);
但我得到的结果如下:
Year: 1
Month: 2
Day: 5
如何使用GregorianCalendar在myDate类中显示日期?我一直在研究这个问题但没有成功。
我非常感谢您的反馈。
尊敬,
豪尔赫马尔多纳多
答案 0 :(得分:0)
只需调用以下方法即可从日历中获取日期:
cal.getTimeInMillis()
这是相应的类:
public class MyDate {
public void setDate(long timeElapsed) {
final GregorianCalendar cal = new GregorianCalendar();
cal.setTime(new Date(timeElapsed));
this.year = cal.get(Calendar.YEAR);
this.month = cal.get(Calendar.MONTH);
this.day = cal.get(Calendar.DAY_OF_MONTH);
}
public long getLong() {
final GregorianCalendar cal = new GregorianCalendar(this.year, this.month, this.day);
return cal.getTimeInMillis();
}
private int year, month, day;
}
答案 1 :(得分:0)
Calendar.YEAR以及MONTH和DAY_OF_THE_MONTH是在get()方法中使用的常量。所以
System.out.println("Year: " + cal.get(Calendar.YEAR));
System.out.println("Month: " + cal.get(Calendar.MONTH));
System.out.println("Day: " + cal.get(Calendar.DAY_OF_MONTH));
做你需要的。
顺便提一下,你不需要创建新的日期来获得时间价值:
long lngDate = System.currentTimeMillis();
System.out.println("lngDate: " + lngDate);
值是一样的。创建新日期时,它使用System.currentTimeMillis()
PS。请记住,cal.get(Calendar.MONTH)返回月号-1。 Jan是0月,2月是1月,依此类推。