Bil*_*ard 20 java calendar date gregorian-calendar
我以为我能够创建一个GregorianCalendar使用年,月和日的构造函数,但我无法从java.sql.Date类的实例中可靠地获取这些字段.java.sql.Date不推荐使用获取这些值的方法,以下代码说明了无法使用它们的原因:
import java.sql.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class DateTester {
public static void main(String[] args) {
Date date = Date.valueOf("2011-12-25");
System.out.println("Year: " + date.getYear());
System.out.println("Month: " + date.getMonth());
System.out.println("Day: " + date.getDate());
System.out.println(date);
Calendar cal = new GregorianCalendar(date.getYear(), date.getMonth(), date.getDate());
System.out.println(cal.getTime());
}
}
Run Code Online (Sandbox Code Playgroud)
这是输出,显示从已弃用的方法getYear()和getMonth()方法中未正确返回月份和年份Date:
年:111
月:11
日:25
2011-12-25
周四至周五25 00:00:00 EST 111
既然我不能使用上面尝试的构造函数,并且没有GregorianCalendar构造函数只需要一个Date,我怎样才能将一个java.sql.Date对象转换成一个GregorianCalendar?
Bil*_*ard 33
你必须分两步完成.首先GregorianCalendar使用默认构造函数创建一个,然后使用(容易混淆的命名)setTime方法设置日期.
import java.sql.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class DateTester {
public static void main(String[] args) {
Date date = Date.valueOf("2011-12-25");
System.out.println(date);
Calendar cal = new GregorianCalendar();
cal.setTime(date);
System.out.println(cal.getTime());
}
}
Run Code Online (Sandbox Code Playgroud)
这是输出:
2011-12-25
Sun Dec 25 00:00:00 EST 2011
| 归档时间: |
|
| 查看次数: |
52000 次 |
| 最近记录: |