Java学习笔记13
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的更多相关文章
- java学习笔记(13) —— google GSON 实现json转化方法
1.配置struts.xml <action name="getGsonAction" class="com.test.action.json.GetGsonAct ...
- Java学习笔记-13.创建窗口和程序片
1.init()方法:程序片第一次被创建,初次运行初始化程序片时调用. start()方法:每当程序片进入web浏览器中,并且允许程序片启动他的常规操作时调用(特殊的程序片被stop()关闭):同样在 ...
- Java学习笔记13(面向对象六:super)
在创建子类对象时,父类的构造方法会先执行,因为子类中所有构造方法的第一行有默认的隐式super();语句 注意:父类构造方法第一行也有隐式的super(); 所有类都有一个"祖宗类" ...
- Java学习笔记13(equals()方法;toString()方法)
equals()方法: equals方法是Object类中的方法:Object是所有类的祖宗,所以所有类都有equals()方法: boolean equals(Object obj); equals ...
- Java学习笔记:2022年1月13日(其一)
Java学习笔记:2022年1月13日(其一) 摘要:这篇笔记主要讲解了Java中的自定义类.以及构造一个类时所需要了解的一些重点知识. 目录 Java学习笔记:2022年1月13日(其一) 1. ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 20145330第十周《Java学习笔记》
20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...
- 20145330第九周《Java学习笔记》
20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...
随机推荐
- 关于 indy Idhttp Post数据抛异常 connection closed Gracefully
delphi 使用indy -idHttp 控件post 数据时 会报connection closed Gracefully这个异常的问题. 网上找了很多方法最多的就是 修改: MyHttp.Req ...
- clickhouse 安装部署(linux)
1.安装部署 1.1下载文件 可以按照官网步骤安装 https://clickhouse.tech/docs/zh/getting-started/install/. 这个库目前大小有2G,网络不允许 ...
- 语法分析~LL1的实现
语法分析之 LL1分析法实现 一.设计目的 根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析.本次实验的目的主要是加深对预测分析LL(1)分析法的理解. 二.设计要求 程序输入/ ...
- Delphi之不可思议
1.--------不可思议的函数调用--开始- 开发环境D7 1 function TForm1.GetssA: string; 2 begin 3 Result:=Result+'AA'; 4 e ...
- 关于 用鼠标移动拖放 TabControl 标签 操作 实现 类
1.相关说明已有 2.本类有可以改进的地方,如更进,希望交流 3.对多行标签的支持没做特别解决,效果不太好 4.初学者使用,即可通过其构造函数直接加载需要赋予此拖放功能的 TabControl 即可实 ...
- 如何让charles无论怎么请求都返回一个结果
1. map Local 将匹配的url映射到本地文件.这个需要首先将url右键,save Response,将原有报文保存到本地,然后映射到该文件,修改该文件即可,直接自己写费事2. ...
- Java学习文档
数在计算机中是以二进制形式表示的,分为有符号数和无符号数,原码.反码.补码都是有符号定点数的表示方法.一个有符号定点数的最高位为符号位,0是正,1是负(以8位整数为例),例如0000001 就是+1, ...
- jacoco插件添加
1.添加依赖 <dependency> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-p ...
- JDK8:Lambda表达式操作List集合
JDK8的流对list的处理提供了很大的方便,特别是做报表的时候才能真正体现出来这个功能的强大:结合日常使用过程,有两个体会:一个是减少了数据库连接,最忌讳在循环中进行数据查询,特别是嵌套多层循环的时 ...
- 摘记:找到程式中 不會被執行到的 code
定义 https://en.wikipedia.org/wiki/Unreachable_codeRemove unreachable code refactoringhttps://docs.mic ...