49天精通Java,第8天,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);
}

49天精通Java,第8天,Date类、Calendar类、date转calendar_第1张图片
纳尼?

String转Date时,格式必须一致。

49天精通Java,第8天,Date类、Calendar类、date转calendar_第2张图片

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
}

在这里插入图片描述

本文收录于,49天精通Java从入门到就业。

全网最细Java零基础手把手入门教程,系列课程包括:基础篇、集合篇、Java8新特性、多线程、代码实战,持续更新中(每周1-2篇),适合零基础和进阶提升的同学。

哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师。

你可能感兴趣的:(49天入门Java,java,开发语言)