Date、Calendar、SimpleDateFormat的使用
Date
Date被Calendar取代了,Date的许多方法已经过时,只有一些老的程序还会使用Date
其中Date的常用方法是toString()与toLocaleString()(已经过时,不过还可以继续使用)
Date date = new Date();
String string = date.toString();//Wed Jun 02 18:54:33 CST 2021
String string1 = date.toLocaleString();//2021-6-2 18:54:33
Calendar
因为Calendar的构造方法是protected,所以不能通过new来创建对象,创建对象需要调用静态方法getInstance(),如果Calendar要使用Date的方法,则需要调用Calendar的getTime()方法将Calendar类型转换为Date类型
Calendar calendar = Calendar.getInstance();
Date time =calendar.getTime();//将Calendar类型转换为Date类型
String string2 = time.toLocaleString();//使用Date里面的方法toLocaleString
下面介绍Calendar输出年、月、日、小时、分的方法,其中月份输出结果是当前月份减1,因为外国12个月的标号是0-11
Calendar calendar = Calendar.getInstance();
int year = instance.get(Calendar.YEAR);//结果是今年年份
int month = instance.get(Calendar.MONTH);//结果是今年月份-1
int day = instance.get(Calendar.DAY_OF_MONTH);
int hour = instance.get(Calendar.HOUR);//12小时制
int hour1 = instance.get(Calendar.HOUR_OF_DAY);//24小时制
int minut = instance.get(Calendar.MINUTE);
SimpleDateFormat
SimpleDateFormat是一个格式化和解析日期的具体类
//创建SimpleDateFormat对象 y年M月d日 h:m:s
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//2021-06-02 07:15:23
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");//2021-06-02
//创建Date对象
Date date = new Date();
//格式化date把日期转成字符串
String format = sdf.format(date);
System.out.println(format);//2021-06-02 07:15:23
//解析(把字符串转成日期)
Date parse = sdf.parse("2050-12-03");//括号内的字符串格式必须与SimpleDateFormat对象格式一样,并且需要抛出异常
System.out.println(parse);//Sat Dec 03 00:00:00 CST 2050
SimpleDateFormat注意:
SimpleDateFormat对象的格式可以有多种写法
yyyy:xxxx年
MM:xx月
dd:xx天
hh:xx小时
mm:xx分钟
ss:xx秒
new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")
new SimpleDateFormat("yyyy-MM-dd ")
new SimpleDateFormat("yyyy/MM/dd ")
这三个对象调用format方法将Date对象格式化输出格式分别为
2021-06-02 07:15:23
2021-06-02
2021/06/02
注意: 使用SimpleDateFormat对象进行解析时,例如Date parse = sdf.parse(“2050-12-03”);括号里面的字符串格式必须与SimpleDateFormat对象格式一样,并且需要抛出异常