1.Date类

1.1 概述

java.util.Date类表示特定的瞬间,精确到毫秒。

1.2 构造方法

Date类有多个构造方法,部分已经过时。

方法 作用
public Date() 从此刻到计算机时间原点(1970年1月1日00:00:00 GMT)经历的毫秒值,转换成Date对象。
public Date(long date) 将指定参数的毫秒值date转换成Date对象,以表示从计算机时间原点以来的指定毫秒数。

1.3 常用方法

方法 作用
public long getTime() 把日期对象转换成对应的时间毫秒值
public void setTime(long time) 把参数time指定的毫秒值设置给时间对象

2.SimpleDateFormat类

2.1 概述

java.text.SimpleDateFormat类是日期/时间格式化类,可以使用该类完成日期和字符串之间的转换。

  • 格式化:按照指定的格式,把Date对象转换为String对象
  • 解析:按照指定的格式,把String对象转换为Date对象

2.2 构造方法

方法 作用
public SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat

常用的规则:

标识字母(区分大小写) 含义
y
M
d
H
m
s

提示:区分大小写

2.3 常用方法

方法 作用
public String format(Date date) 将Date对象格式化为字符串
public Date parse(String source) 将字符串解析为Date对象

2.4 详细规则

字母 日期或时间元素
G Era 标志符
y
M 年中的月份
w 年中的周数
W 月份中的周数
D 年中的天数
d 月份中的天数
F 月份中的星期
E 星期中的天数
a Am/pm 标记
H 一天中的小时数(0-23)
k 一天中的小时数(1-24)
K am/pm 中的小时数(0-11)
h am/pm 中的小时数(1-12)
m 小时中的分钟数
s 分钟中的秒数
S 毫秒数
z 时区
Z 时区

3.Calendar类

3.1 概述

java.util.Calendar类表示一个“日历类”,可以进行日期运算。该类为抽象类,不能创建对象,但是可以使用其子类java.util.GregorianCalendar

有两种方法可以获取GregorianCalendar对象:

  • 直接创建GregorianCalendar对象。
  • 通过Calendar类的静态方法getInstance()获取GregorianCalendar对象。

3.2 常用方法

方法 作用
public static Calendar getInstance() 获取一个GregorianCalendar对象
public int get(int field) 获取某个字段的值
public void set(int field, int value) 设置某个字段的值
public void add(int field, int amount) 将某个字段增加/减少指定的值

Calendar字段对应表:

字段 含义
Calendar.YEAR
Calendar.MONTH 月(0-11)
Calendar.DAY_OF_MONTH
Calendar.HOUR
Calendar.MINUTE
Calendar.SECOND
Calendar.DAY_OF_WEEK 星期(1-7,从星期天开始)

4.JDK8时间相关类

类名 作用
ZoneId 时间
Instant 时间戳
ZoneDateTime 带时区的时间
DateTimeFormatter 用于时间的格式化和解析
LocalDate 年、月、日
LocalTime 时、分、秒
LocalDateTime 年、月、日、时、分、秒
Duration 时间间隔(秒,纳秒)
Period 时间间隔(年,月,日)
ChronoUnit 时间间隔(所有单位)

4.1 ZoneId类

常用方法:

方法 作用
static Set<String> getAvailableZoneIds() 获取Java中支持的所有时区
static ZoneId systemDefault() 获取系统默认时区
static ZoneId of(String zoneId) 获取指定时区

4.2 Instant类

常用方法:

方法 作用
static Instant now() 获取当前时间的Instant对象(世界标准时)
static Instant ofXxx(long epochMilli) 根据秒/毫秒/纳秒获取Instant对象
ZonedDateTime atZone(ZoneId zone) 指定时区(需要用对象调用)
boolean isBefore/isAfter(Instant otherInstant) 判断时间的先后
Instant minusXxx(long millisToSubstract) 减少时间
Instant plusXxx(long millisToSubstract) 增加时间

注意:Instant类对象内容不能改变,每次运算都会生成新的对象。

4.3 ZoneDateTime类

常用方法:

方法 作用
static ZoneDateTime now() 获取当前时间的ZoneDateTime对象(带时区)
static ZoneDateTime ofXxx() 获取指定时间的ZoneDateTime对象(带时区)
ZoneDateTime withXxx(时间) 修改时间
ZoneDateTime minusXxx(时间) 减少时间
ZoneDateTime plusXxx(时间) 增加时间

注意:ZoneDateTime类对象内容不能改变,每次运算都会生成新的对象。

4.4 DateTimeFormatter类

常用方法:

方法 作用
static DateTimeFormatter ofPattern(String pattern) 按照格式获取DateTimeFormatter对象
String format(TemporalAccessor temporal) 按照指定格式格式化时间对象

4.5 LocalDate类(年、月、日)

常用方法:

方法 作用
public static LocalDate now() 获取当前时间的日历对象
public static LocalDate of(时间参数) 获取指定时间的日历对象
public int getXxx() 获取日历对象中某个属性值
public boolean isBefore/After(ChronoLocalDate other) 判断日历对象的时间先后
public LocalDate withXxx(int xxx) 修改日历对象的某个属性值
public LocalDate minusXxx(long xxx) 减少时间
public LocalDate plusXxx(long xxx) 增加时间

4.6 LocalTime类(时、分、秒)

常用方法:

方法 作用
public static LocalTime now() 获取当前时间的日历对象
public static LocalTime of(时间参数) 获取指定时间的日历对象
public int getXxx() 获取日历对象中某个属性值
public boolean isBefore/After(LocalTime other) 判断日历对象的时间先后
public LocalTime withXxx(int xxx) 修改日历对象的某个属性值
public LocalTime minusXxx(long xxx) 减少时间
public LocalTime plusXxx(long xxx) 增加时间

4.7 LocalDateTime类(年、月、日、时、分、秒)

常用方法:

方法 作用
public static LocalDateTime now() 获取当前时间的日历对象
public int getXxx() 获取日历对象中某个属性值
public LocalDate toLocalDate() 转换为LocalDate对象
public LocalTime toLocalTime() 转换为LocalTime对象

4.8 Duration类(秒、纳秒)

常用方法:

方法 作用
public static Duration between(Temporal startInclusive, Temporal endExclusive) 获取两个时间的间隔
public long toXxx() 获取两个时间相差的对应单位的数值

4.9 Period类(年、月、日)

常用方法:

方法 作用
public static Period between(LocalDate startDateInclusive, LocalDate endDateExclusive) 获取两个时间的间隔
public long toXxx() 获取两个时间相差的对应单位的数值

4.10 ChronoUnit类(所有单位)

常用方法:

方法 作用
public long between(Temporal temporal1Inclusive, Temporal temporal2Exclusive) 获取两个时间的间隔

5.包装类

5.1 概述

​ Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:

基本类型 对应的包装类(位于java.lang包中)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

5.2 Integer类

概述

​ 包装一个对象中的原始类型int的值。

方法

方法 作用
public Integer(int value) 根据int值创建Integer对象(过时)
public Integer(String s) 根据String值创建Integer对象(过时)
public static Integer valueOf(int i) 返回表示指定的int值的Integer实例
public static Integer valueOf(String s) 返回保存指定String值的Integer对象
static String toBinaryString(int i) 得到二进制
static String toOctalstring(int i) 得到八进制
static string toHexstring(int i) 得到十六进制
static int parseInt(string s) 将字符串类型的整数转换成int类型的整数

5.3 装箱与拆箱

  • 装箱:从基本数据类型转换为对应的包装类对象。
  • 拆箱:从包装类对象转换为对应的基本数据类型。

提示:从JDK5开始,基本数据类型与包装类的装箱、拆箱可以自动完成。

5.4 基本数据类型与字符串之间的转换

5.4.1 基本数据类型转换为字符串

转换方法:

  • 方法一:直接在数字后加一个空字符串。
  • 方法二:通过String类中的静态方法valueOf()

5.4.2 字符串转换为基本数据类型

​ 除了Character类之外,其他所有包装类都具有形如parseXxx()的静态方法可以将字符串参数转换为对应的基本数据类型。

方法 作用
public static byte parseByte(String s) 将字符串参数转换为对应的byte基本类型
public static short parseShort(String s) 将字符串参数转换为对应的short基本类型
public static int parseInt(String s) 将字符串参数转换为对应的int基本类型
public static long parseLong(String s) 将字符串参数转换为对应的long基本类型
public static float parseFloat(String s) 将字符串参数转换为对应的float基本类型
public static double parseDouble(String s) 将字符串参数转换为对应的double基本类型
public static boolean parseBoolean(String s) 将字符串参数转换为对应的boolean基本类型

5.5 底层原理

建议:获取Integer对象的时候不要自己new,而是采取直接赋值或者静态方法valueOf的方式

因为在实际开发中,-128~127之间的数据,用的比较多。如果每次使用都是new对象,那么太浪费内存了。

所以,提前把这个范围之内的每一个数据都创建好对象,如果要用到了不会创建新的,而是返回已经创建好的对象。

Java学习笔记13的更多相关文章

  1. java学习笔记(13) —— google GSON 实现json转化方法

    1.配置struts.xml <action name="getGsonAction" class="com.test.action.json.GetGsonAct ...

  2. Java学习笔记-13.创建窗口和程序片

    1.init()方法:程序片第一次被创建,初次运行初始化程序片时调用. start()方法:每当程序片进入web浏览器中,并且允许程序片启动他的常规操作时调用(特殊的程序片被stop()关闭):同样在 ...

  3. Java学习笔记13(面向对象六:super)

    在创建子类对象时,父类的构造方法会先执行,因为子类中所有构造方法的第一行有默认的隐式super();语句 注意:父类构造方法第一行也有隐式的super(); 所有类都有一个"祖宗类" ...

  4. Java学习笔记13(equals()方法;toString()方法)

    equals()方法: equals方法是Object类中的方法:Object是所有类的祖宗,所以所有类都有equals()方法: boolean equals(Object obj); equals ...

  5. Java学习笔记:2022年1月13日(其一)

    Java学习笔记:2022年1月13日(其一) ​ 摘要:这篇笔记主要讲解了Java中的自定义类.以及构造一个类时所需要了解的一些重点知识. 目录 Java学习笔记:2022年1月13日(其一) 1. ...

  6. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  7. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  8. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  9. 20145330第十周《Java学习笔记》

    20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...

  10. 20145330第九周《Java学习笔记》

    20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...

随机推荐

  1. linux行去重的一种方法

    awk '{x[$0]++}END{for(i in x)print i}' newsub > newsub2// orcat oldword| awk  -F "\t" ' ...

  2. linux查看IP地址

    方法一:ifconfig -a 方法二:ip addr

  3. vue3.0的生命周期函数

    stetup(){}在 生命周期函数 系列中的优先级 〇setup(){ //优先级最高 处于created生命周期之前的函数,是无法访问data,methods中的数据是无法访问到的,setup中的 ...

  4. unittest框架基本使用

    1.简介 unittest是python内置的单元测试框架,具备编写用例.组织用例.执行用例.输出报告等自动化框架的条件.使用unittest前需要了解该框架的五个概念: 即test case,tes ...

  5. ABPvNext修改密码强度

    ABPvNext 5.0之后,一些原有的修改密码强度的办法已经被抛弃无法正确使用.目前亲测有效的办法只有通过配置管理修改密码强度. 这里配置文件设置配置的方式,更多方法,可参见官方文档中的Settin ...

  6. 关于QT编译程序找不到MSVCRT.DLL和其他动态链接库的解决办法

    先上图(一大堆无法解析的外部符号): 解决办法分两个步骤: 1.系统环境变量设置,把这些dll文件所在目录加入到PATH中.比如C:\Windows\SysWOW64, C:\Windows\Syst ...

  7. tag 总结

    通用的: (((masterpiece))),((best quality)),ultra-detailed,extremely detailed CG unity 8k wallpaper,best ...

  8. C#中冒号:使用场景

    1. 继承类.实现接口与继承构造函数 ① 继承类 /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public p ...

  9. Spring-传统方式(XML)创建webapp

    如何搭建一个传统的webapp项目[Java后端] 使用xml 来搭建 SSM 环境,要求 Tomcat 的版本必须在 7 以上 QuickStart 1创建工程 创建一个新模块[普通的 Maven ...

  10. Spring------Bean的实例化的几种方法

    构造方法 提供可访问的构造方法: 无参构造方法被调用: 如果无参构造方法不存在,将抛出异常BeanCreationException 静态工厂 在ApplicaytionContext.xml中使用静 ...