49天精通Java,第20天,Date类、Calendar类、date转calendar
目录
- 一、Date类
- 1、创建一个当前时间的Date对象
- 2、获取Date中的信息
- 二、Calendar类
- 1、Calendar类简介
- 2、创建一个代表系统当前日期的Calendar对象
- 3、创建一个指定日期的Calendar对象
- 4、set设置
- 5、add
- 6、使用get获取时间
- 三、日期互转
- 1、Date与long
- 2、Calendar与long
- 3、Date与Calendar互转
- 4、String与Date互转
- 5、String与Calendar互转
大家好,我是哪吒。
一、Date类
1、创建一个当前时间的Date对象
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);//Sat Nov 06 18:31:32 CST 2021
}
2、获取Date中的信息
System.out.println(date.getTime());//1636194765887
二、Calendar类
1、Calendar类简介
Calendar类的功能要比Date类强大很多,可以方便的进行日期的计算,获取日期中的信息时考虑了时区等问题。而且在实现方式上也比Date类要复杂一些。
Calendar类是一个抽象类,由于Calendar类是抽象类,且Calendar类的构造方法是protected的,所以无法使用Calendar类的构造方法来创建对象,API中提供了getInstance方法用来创建对象。
2、创建一个代表系统当前日期的Calendar对象
Calendar calendar = Calendar.getInstance();//默认是当前日期
3、创建一个指定日期的Calendar对象
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(2021, 5, 9);
System.out.println(calendar.getTime());//Wed Jun 09 18:36:09 CST 2021
}
4、set设置
(1)set设置
public final void set(int year,int month,int date)
(2)利用字段类型设置
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,2021);
calendar.set(Calendar.MONTH,11);
calendar.set(Calendar.DAY_OF_MONTH,6);
System.out.println(calendar.getTime());//Mon Dec 06 18:39:22 CST 2021
}
Calendar类中用一下这些常量表示不同的意义,jdk内的很多类其实都是采用的这种思想
Calendar.YEAR——年份
Calendar.MONTH——月份
Calendar.DATE——日期
Calendar.DAY_OF_MONTH——日期,和上面的字段意义相同
Calendar.HOUR——12小时制的小时
Calendar.HOUR_OF_DAY——24小时制的小时
Calendar.MINUTE——分钟
Calendar.SECOND——秒
Calendar.DAY_OF_WEEK——星期几
5、add
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,2021);
calendar.set(Calendar.MONTH,11);
calendar.set(Calendar.DAY_OF_MONTH,6);
calendar.add(Calendar.DAY_OF_MONTH,2);
System.out.println(calendar.getTime());//Wed Dec 08 18:42:25 CST 2021
}
6、使用get获取时间
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,2021);
calendar.set(Calendar.MONTH,11);
calendar.set(Calendar.DAY_OF_MONTH,6);
calendar.add(Calendar.DAY_OF_MONTH,2);
System.out.println(calendar.get(Calendar.YEAR));//2021
System.out.println(calendar.get(Calendar.MONTH));//11
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//8
}
三、日期互转
1、Date与long
public static void main(String[] args) {
Date date = new Date();
long time = date.getTime();
}
2、Calendar与long
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,2021);
calendar.set(Calendar.MONTH,11);
calendar.set(Calendar.DAY_OF_MONTH,6);
calendar.add(Calendar.DAY_OF_MONTH,2);
long timeInMillis = calendar.getTimeInMillis();
}
3、Date与Calendar互转
(1)Date转Calendar
public static void main(String[] args) {
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
}
(2)Calendar转Date
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,2021);
calendar.set(Calendar.MONTH,11);
calendar.set(Calendar.DAY_OF_MONTH,6);
calendar.add(Calendar.DAY_OF_MONTH,2);
Date time = calendar.getTime();
}
4、String与Date互转
(1)Date转String
public static void main(String[] args) {
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
String dateStr=sdf.format(new Date());
}
(2)String转Date
public static void main(String[] args) throws ParseException {
String str="20211106";
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(str);
System.out.println(date);
}
纳尼?
String转Date时,格式必须一致。
5、String与Calendar互转
(1)Calendar 转化 String
public static void main(String[] args) throws ParseException {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String str = sdf.format(calendar.getTime());
}
(2)String 转化Calendar
public static void main(String[] args) throws ParseException {
String str="2021-11-6";
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date date =sdf.parse(str);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
System.out.println(calendar.getTime());//Sat Nov 06 00:00:00 CST 2021
}
🏆本文收录于,Java基础教程系列。
目前已经700+订阅,CSDN最强Java专栏,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。
🏆哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师。