当前位置: 首页 > article >正文

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架构师。


http://www.kler.cn/a/7905.html

相关文章:

  • 离线 快速搭建 docker docker-compose k8s 环境
  • 【WRF理论第十二期】输出文件:wrfout 和 wrfrst
  • 开源项目推荐——OpenDroneMap无人机影像数据处理
  • DOCKER 镜像基础命令
  • 成都睿明智科技有限公司解锁抖音电商新玩法
  • 传奇996_21——龙岭事件
  • 个人情况-单词练习
  • 穿梭框后端,java处理实现增删改查
  • lua脚本实现滑动窗口的分布式全局限流器, 控制api接口qps
  • 【文本分类】《基于提示学习的小样本文本分类方法》
  • usb_cam 相机ROS配置
  • R语言多元数据统计分析在生态环境中的应用
  • Elasticsearch:高级数据类型介绍
  • SpringBoot—Spring Data JPA(2)
  • 苹果配摄像头的HomePod专利获批,语音唤醒苹果Find My功能
  • Spring注解开发详解
  • vue2和vue3的区别
  • 深度学习语义分割篇——FCN原理详解篇
  • 手机怎么投屏到电脑?3个简单的方法教会你!
  • 一本通 3.4.2 图的最短路径
  • FL Studio21中文版本下载及语言切换调整
  • Spring循环依赖
  • LCP 44. 开幕式焰火
  • Chat-GLM 详细部署(GPU显存>=12GB)
  • PMP如何备考,才能一次通过呢?
  • Twitter-高性能hash_map