代码编织梦想

源自韩和平零基础30天学java的学习总结



一、第一代日期类

在java.util包下的Date类
1.获取当前系统时间

Date date = new Date();
System.out.println(date);

这里默认输出的日期形式是国外的形式,因此需要2进行转换

2.将日期转化为指定格式的字符串

SimpleDateFormat sdf=new SimpleDateFormat("yyyyMM月dd日 hh:mm:ss E");
String format = sdf.format(date);
System.out.println(format);

SimpleDateFormat对象可以指定相应的格式

3.通过指定毫秒数得到时间

Date date1 = new Date(1989289432);
System.out.println(date1);

4.把一个格式化的String转成date

String s="2014年6月8日 12:34:26 星期二";
Date parse = sdf.parse(s);
System.out.println("parse="+sdf.format(parse));

这个String的内容的形式必须与SimpleDateFormat(“yyyyMM月dd日 hh:mm:ss E”)中的格式一致,否则会抛出转换异常。

格式中的yy,MM等字母是规定好的,不能乱写。可以在java jdk文档中可以查看

二、第二代日期类

1**.创建日历类对象**

Calendar c = Calendar.getInstance();
//System.out.println("c="+c);

在这里插入图片描述

输出日历类对象c后发现年月日等时间信息是以字段的形式在里面显示的。

2.获取日历对象的某个日历字段

System.out.println("年="+c.get(Calendar.YEAR));

3.Calendar返回月的时候是按0开始编号的

System.out.println("月="+(c.get(Calendar.MONTH)+1));

4.日

System.out.println("月"+c.get(Calendar.DAY_OF_MONTH));
System.out.println("小时="+c.get(Calendar.HOUR));
System.out.println("分钟="+c.get(Calendar.MINUTE));
System.out.println("秒="+c.get(Calendar.SECOND));

5.Calendar没有专门的格式化方法,需要程序员自己去组合。

System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日"+c.get(Calendar.HOUR)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND));

三、第三代日期类

1. 前两类日期类的不足

java.util.Date是在jdk1.0引入的,但在jdk1.1后引入了Calendar后Date的很多方法就弃用了。
Calendar存在的问题:
(1)可变性:日期时间这样的类应该是不可变的。
(2)偏移性:Date中的年份从1900年开始,月份从0开始。
(3)格式化:Date可以格式化,而Calendar不能进行格式化。
(4)它们不是线程安全的,不能在多线程中。并且也不能处理闰秒(每隔2天,多出1s)等。

2.第三类日期类的使用

1.使用now获取当前日期时间的对象

(1)LocalDateTime:日期时间对象(可获取年月日/时分秒)

LocalDateTime now = LocalDateTime.now();
System.out.println(now);

取出其中的字段:

System.out.println("年="+now.getYear());
System.out.println("月="+now.getMonth());
System.out.println("月="+now.getMonthValue());
System.out.println("日="+now.getDayOfMonth());
System.out.println("时="+now.getHour());
System.out.println("分="+now.getMinute());
System.out.println("秒="+now.getSecond());

(2)LocalDate对象:日期对象(可获取年月日)

LocalDate now1 = LocalDate.now();

(3)LocalTime对象:时间对象(可获取时分秒)

LocalTime now2 = LocalTime.now();

2.使用DateTimeFormatter 对象来格式化

DateTimeFormatter dtf= DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH小时mm分钟ss秒");
String format = dtf.format(now);
System.out.println("格式化的日期="+format);

3.Instanst时间戳
(1).通过now获取当前时间戳的对象

Instant now = Instant.now();
System.out.println(now);

(2).通过from可以把Instant转成Date

Date date = Date.from(now);
System.out.println(date);

(3).通过date的toInstant可以把date转成Instant对象

Instant instant = date.toInstant();

4…第三代日期类更多的方法
(1)添加时间后的时间:

LocalDateTime ldt = now.plusDays(8890);
System.out.println("8890天后的时间为: "+dtf.format(ldt));

(2)减少时间后的时间:

LocalDateTime localDateTime = now.minusHours(5500);
        System.out.println("1000小时前的时间为: "+dtf.format(localDateTime));
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_51646336/article/details/129644417

java学习笔记总结,持续更新中_超超超超子的博客-爱代码爱编程

java学习的笔记,目前正在学习中,持续更新。 标识符是直接copy下来的,命名一定要规范。     标识符规范:   1>标识符由大小写字母, 下划线, 数字, $符号组成. 2>开头可以是大小写字母, 下划线, 和$符号.(数字不能开头) 3>标识符长度没有限制 4>标识符不能是关键子和保留字   标识符的

java学习笔记——java常用类_runner1st的博客-爱代码爱编程

Java学习笔记——Java常用类 文章目录 Java学习笔记——Java常用类1 字符串1.1 String1.1.1 内存1.1.2 常用方法1.1.3 类型转换1.1.4 几个小算法 1.2 Stri

java日期工具类笔记-爱代码爱编程

java 日期Calendar工具类总结 Calendar cada=null; cada=Calendar.getInstance(); String firstday,lastday; SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); //设置时间的偏移量这里的参

Java知识体系最强总结(2020版)-爱代码爱编程

目录 Java面试总结 基础知识 Java概述 基础语法 面向对象 集合框架 IO流 网络编程 常用API 常用工具类库 单元测试 异常 日志 工具 IDEA Eclipse & STS Maven Docker Git GitLab GitKraken Navicat 并发编程 基础知识 并发理论

Java常用实用类的总结-爱代码爱编程

1.String类   (1)对字符串的操作,正则表达式,字符串的替换和分解 2.StringToKenizer类   (1)对字符串的分解以及数量统计 3.Scanner类   (1)解析字符串 4.Date与Calendar类   (1)时间日期操作 5.日期的格式化   (1)使用SimpleDateFormat对日期格式化 6.

Java8中常用的时间日期类总结-爱代码爱编程

该博客是本人在学习《Java8实战》时的学习笔记以及对之前一些知识的总结,其中包含了Java8之前时间日期类的缺陷和Java8之后常用的时间日期类的总结,如果有错误之处,欢迎各位指正。 Java8之前对时间日期处理的缺陷易读性问题线程安全问题Java8对时间日期类的改进java.time.format.DateTimeFormatter类java.

Java基础知识笔记整理(小白学Java)-爱代码爱编程

文章目录 前言java语言特性java的编译与运行JDK、JRE、JVM字符编码数据类型数据类型取值范围数据类型默认转换标识符命名方法数组一维数组二维数组数组排序算法数组查找算法数组工具类(Arrays)逻辑运算符输入操作Java中的命名规则有符号数据表示法面向对象与面向过程包类类的描述类的导入自定义类的使用类的初始化过程类的设计技巧类的加载类的加

Java常用类笔记-爱代码爱编程

文章目录 一、前言二、String类1.理解String的不可变性2.String不同实例化方式对比3.String不同拼接操作的对比4.String常用方法5.String类与其他结构之间的转换三、StringBuffer类和StringBuilder类1.StringBuffer分析(StringBuilder同理)2.StringBuffer

JAVA8之 日期时间时区之 Clock和Instant 笔记-爱代码爱编程

文章目录 前言Clock源码分析 来自(OpenJDK15)类说明翻译Clock是一个抽象类Clock有4个实现类在同文件下SystemClock 系统时间+系统时区FixedClock 时刻+时区OffsetClock 表示一段时间差 用Duration包装TickClock 表示一段时间差 用纳秒Clock的4个主要专属方法ZoneId get

Java基础知识点总结-爱代码爱编程

Java基础知识点 (原创不易,你们对阿超的赞就是阿超持续更新的动力!)(以免丢失,建议收藏,阿超持续更新中......)(------------------------------------------------------------------------)面向对象深刻理解面向对象有什么好处面向对象的三大特性六大基本原则高内聚低耦合面向

Java学习笔记十七——集合类详细总结各自对比-爱代码爱编程

Java编程基础倒数第三篇,感谢没有放弃的自己。 学习笔记参考书籍《Java编程基础》主编 张焕生。本书内容比较适合没有什么基础的入门小白,学完一章还有习题,比较适合初学者。 自律、积极、勤奋以及先从一个怎么样都不可能不会实现的小目标开始。 本文已收录于[ 专栏 ] 🌳《Java入门》系列🌳 前面[ 章节 ]

Java学习笔记十八——集合类之泛型-爱代码爱编程

学习笔记参考书籍《Java编程基础》主编 张焕生。本书内容比较适合没有什么基础的入门小白,学完一章还有习题,比较适合初学者。 自律、积极、勤奋以及先从一个怎么样都不可能不会实现的小目标开始。 本文已收录于[ 专栏 ] 🌳《Java入门》系列🌳 前面[ 章节 ]: 🎉🎉 Java学习笔记十七——集合类详

尚硅谷JAVA基础笔记吐血整理-爱代码爱编程

JAVA基础 第4/5/6章 面向对象Day 8 (P198-P218)1、形参与实参2、值传递机制3、属性(成员变量)vs 局部变量Day 9 (P219-P241)1、封装与隐藏2、权限修饰符3、构造器4、UML类图5、this关键字6、package关键字的使用7、MVC设计模式8、import关键字Day 10 (P242-P264)1、项

java基础篇之io流,动力节点老杜详细笔记_io流老杜-爱代码爱编程

目录 什么是IO流?   IO流的分类 ? 怎么学好IO流? 代码演示 FileInputStream FileOutputStream 文件的复制 FileReader FileWriter BufferedReader      BufferedWriter DataOutputStream ​

韩顺平java学习笔记(入门自用)_韩顺平java笔记-爱代码爱编程

文章链接至:sycblog.fun 目录 封装(Encapsulation) 继承(Extend) 多态(Polymorphism) 类变量和类方法(Static) 代码块 (Codeblock) final 关键字 抽象类 (Abstract) 接口 (Interface) 内部类 (InnerClass) 枚举(En

《java学习笔记》:日期类常用方法全归纳,值得收藏。_java日期方法-爱代码爱编程

CSDN话题挑战赛第1期 活动详情地址:话题团队PK赛5/9-5/22-CSDNhttps://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 参赛话题:Java学习记录 话题描述:每个人学习的路线不同,学习的方式视频教学和跟的老师不同,一个知识点会多种不同的讲解之法,下面这篇文章记录了我的学习记