一个类的设计在之前可能考虑不周,后期进行不断修改完善—我猜的
话不多说–先看代码
关于Date的代码在上一篇已经提到了,感兴趣可以移步,下面是链接
https://blog.csdn.net/weixin_54061333/article/details/118581212
Calendar 类是一个抽象类,实例化的话需要子类—
public class Testdate {
public static void main(String[] args) throws ParseException {
Calendar calendar= new GregorianCalendar();
System.out.println(calendar);
看看输出结果–
java.util.GregorianCalendar[time=1625804460911,areFieldsSet=true,
areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.
ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,
useDaylight=false,transitions=31,lastRule=null],firstDayOfWeek=1,
minimalDaysInFirstWeek=1,ERA=1,YEAR=2021,MONTH=6,WEEK_OF_YEAR=28,
WEEK_OF_MONTH=2,DAY_OF_MONTH=9,DAY_OF_YEAR=190,DAY_OF_WEEK=6,
DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=21,
SECOND=0,MILLISECOND=911,ZONE_OFFSET=28800000,DST_OFFSET=0]
Process finished with exit code 0
Calender类包含的东西很多,所以可以直接拿过来用,但是直接给用户看–用户保证不打死你;
别着急,
public class Testdate {
public static void main(String[] args) throws ParseException {
Calendar calendar= new GregorianCalendar();//父类通过子类实例化
//System.out.println(calendar);
StringBuffer stringBuffer= new StringBuffer();
stringBuffer.append(calendar.get(Calendar.YEAR));
stringBuffer.append(calendar.get(Calendar.MONTH)+1);
stringBuffer.append(calendar.get(Calendar.DAY_OF_MONTH));
System.out.println(stringBuffer);
Calendar calendar1= Calendar.getInstance();//实例化的另一种方式
}
}
看一下getInstance()源码–
public static Calendar getInstance()
{
Locale aLocale = Locale.getDefault(Locale.Category.FORMAT);
return createCalendar(defaultTimeZone(aLocale), aLocale);
}
该方法返回一个Calendar的实例(return createCalendar)
再来看一下createCalendar()源码
private static Calendar createCalendar(TimeZone zone,
Locale aLocale)
{
CalendarProvider provider =
LocaleProviderAdapter.getAdapter(CalendarProvider.class, aLocale)
.getCalendarProvider();
此方法根据时区不同返回不同的结果—国际化时间
Calendar类中还有很多其他方法
public class Testdate {
public static void main(String[] args) throws ParseException {
Calendar calendar1= Calendar.getInstance();//实例化的另一种方式--
System.out.println(calendar1.getFirstDayOfWeek());//获取一周的第一天是什么
System.out.println(calendar1.getActualMaximum(Calendar.DATE));
System.out.println(calendar1.getActualMinimum(Calendar.DATE));
}
}
1
31
1
既然可以获得数据,同样可以设置数据--------
public class Testdate {
public static void main(String[] args) throws ParseException {
Calendar calendar1= Calendar.getInstance();//实例化的另一种方式--
calendar1.set(Calendar.YEAR,1992);
calendar1.set(Calendar.MONTH,10);
calendar1.set(1993,10,19);
calendar1.set(1993,10,19,12,42,34);
System.out.println(calendar1.get(Calendar.YEAR));
System.out.println(calendar1.get(Calendar.MONTH));
System.out.println(calendar1.get(Calendar.DAY_OF_MONTH));
//字符串转Calendar
java.sql.Date date=java.sql.Date.valueOf("2022-12-11");
calendar1.setTime(date);
System.out.println("---------------------华丽的分割线---------------------------");
System.out.println(calendar1.get(Calendar.YEAR));
System.out.println(calendar1.get(Calendar.MONTH)+1);
System.out.println(calendar1.get(Calendar.DAY_OF_MONTH));
}
}
每天能学习一小步,日后精进一大步