为什么java的Date类无法设置1900年以前的日期,大神帮帮忙!

2025-01-01 15:19:26
推荐回答(1个)
回答1:

//条条大路通罗马啊.哈...我刚才整理一下,几种方法,可以参考一下,有可能还有其他更好的呢
import java.text.*;
import java.util.*;
public class CalTest {
public static void main(String[] args) {
//方法1:创建
Calendar cd=new GregorianCalendar(1800,4,1);
String str=new SimpleDateFormat("y年M月d日E").format(cd.getTime());
System.out.println("方法1获取:"+str);

//方法2:设置
cd=Calendar.getInstance();
cd.set(1800, 4, 1);
str=DateFormat.getDateInstance(DateFormat.FULL).format(cd.getTime());
System.out.println("方法2获取:"+str);

//方法3:偏移
cd=Calendar.getInstance();
cd.add(Calendar.YEAR, 1800-cd.get(Calendar.YEAR));
str=DateFormat.getDateInstance(DateFormat.FULL).format(cd.getTime());
System.out.println("方法3获取:"+str);

//方法4:过时了但是能用;
str=DateFormat.getDateInstance(DateFormat.FULL).format(new Date(1800-1900,04,01));
System.out.println("方法4获取:"+str);
}
}
//你所说的应该是我整理的方法4那样的,用方法3吧这个最灵活了..