文章目录

  • java.lang.System类
  • java.util.Date类
  • java.sql.Date类
  • java.text.SimpleDateFormat类
  • java.util.Calendar(日历)类
  • java.time类
  • java.time.Instant类
  • java.time.format.DateTimeFormatter 类
  • 其它API


java.lang.System类

System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差(时间戳)。(此方法适于计算时间差)

long time = System.currentTimeMillis();
System.out.println(time);


java.util.Date类

构造器:
Date():创建的对象可以获取本地当前时间
Date(long date):创建指定毫秒数的Date对象,相当于又将时间戳转换成String形式

常用方法
getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
toString():把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准。

import java.util.Date;public class DataTest {public static void main(String[] args) {Date date = new Date();System.out.println(date.toString());System.out.println(date); //等同于toString()方法System.out.println(date.getTime());}
}


java.sql.Date类

是java.util.Date类的子类,对应着数据库中的日期类型的变量。

构造器:java.sql.Date(时间戳)

常用方法:同上

java.sql.Date与java.util.Date转换,可以通过多态和getTime()方法

import java.util.Date;public class DataTest {public static void main(String[] args) {Date date = new Date();java.sql.Date sqlDate = new java.sql.Date(date.getTime());System.out.println(sqlDate);}
}


java.text.SimpleDateFormat类

Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类。其允许进行①格式化:日期—>字符串、②解析:字符串—>日期。

格式化:
1.实例化
①SimpleDateFormat() :默认的模式和语言环境创建对象
②SimpleDateFormat(String pattern):该构造方法可以用参数pattern指定的格式创建一个对象
2.格式化
实例化对象调用 String format(Date date)方法格式化时间对象

import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleTest {public static void main(String[] args) {SimpleDateFormat sdf = new SimpleDateFormat(); //无参默认模式实例化Date date = new Date(); String format = sdf.format(date); //格式化System.out.println(format);}
}

import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleTest {public static void main(String[] args) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss"); //带参指定格式实例化Date date = new Date();String format = sdf.format(date); //格式化System.out.println(format);}
}


关于指定格式:


解析(格式化逆过程):
Date parse(String source):依据格式解析字符串,以生成一个日期(注意格式的匹配对应,否则抛异常)

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleTest {public static void main(String[] args) throws ParseException {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss"); //带参指定格式实例化Date parse = sdf.parse("2020-12-20  22:03:19");System.out.println(parse);}
}



java.util.Calendar(日历)类

这是一个抽象(abstract)类,主用用于完成日期字段之间相互操作的功能。

实例化:
①使用Calendar.getInstance()该静态方法
②调用它的子类GregorianCalendar的构造器

常用方法:

import java.util.Calendar;
import java.util.Date;public class CalendarTest {public static void main(String[] args) {Calendar instance = Calendar.getInstance();//get():int get(int field)int ofMouth = instance.get(Calendar.DAY_OF_MONTH);System.out.println(ofMouth);int ofYear = instance.get(Calendar.DAY_OF_YEAR);System.out.println(ofYear);//set():void set(int field,int value)instance.set(Calendar.DAY_OF_MONTH,9);System.out.println(instance.get(Calendar.DAY_OF_MONTH));//add:void add(int field,int amount)instance.add(Calendar.DAY_OF_MONTH,-2);System.out.println(instance.get(Calendar.DAY_OF_MONTH));//getTime:final Date getTime() 将日历类型转换为Date类型Date time = instance.getTime();System.out.println(time);//setTime:final void setTime(Date date) 将Date类型转换为日历类型instance.setTime(new Date());System.out.println("********" + instance.getTime());}
}


一个Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想要的时间信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、MINUTE、SECOND。



java.time类

LocalDate、LocalTime、LocalDateTime 类是其中较重要的几个子类,它们的实例
是不可变的对象,分别表示使用 ISO-8601日历系统的日期、时间、日期和时间。

实例化:

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;public class TimeTest {public static void main(String[] args) {//now() 获取当前日期,时间,日期+时间LocalDate now1 = LocalDate.now();LocalTime now2 = LocalTime.now();LocalDateTime now3 = LocalDateTime.now();System.out.println(now1);System.out.println(now2);System.out.println(now3);//of() 设置指定的年月日时分秒,没有偏移量LocalDateTime of = LocalDateTime.of(2021, 9, 9, 15, 36, 40);System.out.println(of);}
}

其他常用方法:

import java.time.LocalDateTime;public class TimeTest {public static void main(String[] args) {LocalDateTime now = LocalDateTime.now();//getXxx() 获取相关的属性System.out.println(now.getDayOfWeek());System.out.println(now.getMonth());System.out.println(now.getMonthValue()); //......//withXxx() 设置相关的属性,不可变性LocalDateTime nowWith = now.withDayOfMonth(8);System.out.println(nowWith);System.out.println(now);//plusXxx() 加,不可变性LocalDateTime pl = now.plusMonths(2);System.out.println(pl);//minusXxx() 减,不可变性LocalDateTime mi = now.minusDays(8);System.out.println(mi);}
}



java.time.Instant类

Instant:时间线上的一个瞬时点。 这可能被用来记录应用程序中的事件时间
戳。

import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;public class InstantTest {public static void main(String[] args) {//获取本初子午线当前的标准时间Instant now = Instant.now();System.out.println(now);//结合时区,添加当地时间偏移量OffsetDateTime offsetDateTime = now.atOffset(ZoneOffset.ofHours(8));System.out.println(offsetDateTime);//返回1970-01-01 00:00:00到当前时间的毫秒数,即为时间戳long l = now.toEpochMilli();System.out.println(l);//返回在1970-01-01 00:00:00基础上加上指定毫秒数之后的Instant类的对象Instant instant = Instant.ofEpochMilli(l);System.out.println(instant);}
}



java.time.format.DateTimeFormatter 类

该类提供了三种格式化方法:
①预定义的标准格式,如:ISO_LOCAL_DATE_TIME;ISO_LOCAL_DATE;ISO_LOCAL_TIME
②本地化相关的格式,如:ofLocalizedDateTime(FormatStyle.LONG)
③自定义的格式,如:ofPattern(“yyyy-MM-dd hh:mm:ss”)

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.time.temporal.TemporalAccessor;public class FormatterTest {public static void main(String[] args) {//方式一:预定义的标准格式DateTimeFormatter isoDateTime = DateTimeFormatter.ISO_LOCAL_DATE_TIME;//格式化String format1 = isoDateTime.format(LocalDateTime.now());System.out.println(format1);//解析TemporalAccessor parse1 = isoDateTime.parse(format1);System.out.println(parse1);//方式二:本地化相关的格式DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG);//格式化String format2 = dateTimeFormatter.format(LocalDateTime.now());System.out.println(format2);//解析TemporalAccessor parse2 = dateTimeFormatter.parse(format2);System.out.println(parse2);//方式三:自定义格式DateTimeFormatter dateTimeFormatter3 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");//格式化String format3 = dateTimeFormatter3.format(LocalDateTime.now());System.out.println(format3);//解析TemporalAccessor parse3 = dateTimeFormatter3.parse(format3);System.out.println(parse3);}
}



其它API

ZoneId:该类中包含了所有的时区信息,一个时区的ID,如 Europe/Paris
ZonedDateTime:一个在ISO-8601日历系统时区的日期时间,
如 2007-12-03T10:15:30+01:00 Europe/Paris
其中每个时区都对应着ID,地区ID都为“{区域}/{城市}”的格式,例如:
Asia/Shanghai等

Clock:使用时区提供对当前即时、日期和时间的访问的时钟
持续时间:Duration,用于计算两个“时间”间隔
日期间隔:Period,用于计算两个“日期”间隔

TemporalAdjuster : 时间校正器。有时我们可能需要获取例如:将日期调整到“下一个工作日”等操作。
TemporalAdjusters : 该类通过静态方法(firstDayOfXxx()/lastDayOfXxx()/nextXxx())提供了大量的常用TemporalAdjuster 的实现


Java常用类(2)--日期时间相关类Date、Calendar、LocalDateTime、Instant全面相关推荐

  1. java学习--基础知识进阶第五天--API、 Object类 System类、日期相关类、包装类正则表达式...

    今日内容介绍 u  Object类 & System类 u  日期相关类 u  包装类&正则表达式 第1章 Object类 & System类 1.1 Object类 1.1. ...

  2. java常用地图坐标系转换工具类,支持谷歌,腾讯,百度等主流的地理坐标转换

    package com.shen.springboot.redis.util;import java.util.ArrayList; import java.util.HashMap; import ...

  3. 复习Object类_日期时间类_System类_StringBuilder_包装类以及各类的细节

    Object类_日期时间类_System类_StringBuilder_包装类以及各类的细节 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 Stri ...

  4. SimpleDateFormat类(简单日期格式类)

    SimpleDateFormat类(简单日期格式类) 它是一个具体的类(相应的最底层类),用于以区域设置铭感的方式格式化和解析日期.重点学习日期格式化和解析 日期和时间格式由日期和时间模拟字符串指定, ...

  5. (Java常用类)日期时间类

    文章目录 Date类 概述 常用方法 代码演示 DateFormat类 构造方法 格式规则 常用方法 代码演示 Calendar类 概念 获取方式 常用方法 get/set方法 add方法 getTi ...

  6. JAVA day13,14 API、Object类、日期时间类(long,Date,Calendar,DateFormat)、String类(字符串,可变长字符串)、正则表达式、包装类

    1.API API(Application Programming Interface),应⽤程序编程接⼝.Java API是⼀本程序员的"字 典",是JDK提供给我们使⽤的类的说 ...

  7. java之进阶语法(Object类及日期时间类)

    一.关于Object类 (一)概述 java.lang.object类是java语言的根类,即是所有类的父类. 若一个类没有指定父类,那么默认继承自Object类 object类常用的方法有以下: - ...

  8. Java Calendar 日历类的时间操作 Timestamp Date Calendar 相互转换

    Java Calendar 日历类的时间操作,这也许是 Java 环境下创建和管理日历及操作时间最简单的一个方案了,示范代码也很简单. 演示了获取时间,日期时间的累加和累减,以及日期时间的比较. 原文 ...

  9. java dateutils_Java中简单日期工具类DateUtils的实现

    最近工作时经常处理日期,想起以前sql server中datediff,dateadd 等方法非常好用,于是想在java中实现类以的功能,而且提高精度,所以初步有了以下代码: package com. ...

  10. Java常用的格式化Json工具类

    扩展:Java常用工具类汇总 文章目录 前置条件 一.数组格式json转成 `,`隔开的字符串 二.String转List<对象> 三.String转Map 四.未完待续~ 前置条件 导入 ...

最新文章

  1. hutol json null值没了_JSON数据处理框架Jackson精解第一篇-序列化与反序列化核心用法...
  2. 集合去重 (集合元素为引用类型)--- java 8 新特性 --- 根据元素单属性、多属性实现去重
  3. 16 计划稳定性与控制
  4. SameMovie HBOMax Video Downloader for Mac如何在 Mac 上下载 HBO Max 视频?
  5. python3连接MSSQL数据库 中文乱码怎么解决?
  6. 草图大师 2019 破解版|草图大师Sketchup pro 2019中文破解版64位下载 v19.0(附Sketchup 2019破解补丁)
  7. Python利用GUI界面制作B站弹幕分析工具
  8. html设置带边框九宫格,CSS九宫格带边框的多种实现
  9. WDF基本对象和句柄定义
  10. 鸿蒙系统sp3什么意思,XP系统的那个SP3是什么意思?
  11. Wordpress Theme 主题森林商城有些什么?
  12. C# ActionT 委托
  13. windows10电脑在哪配置DNS
  14. HID 报告描述符的填充方式
  15. 【 C++ 技术】 C++ 高性能服务器网络框架设计细节
  16. 单系统 台电x80pro_转载:台电X80 Pro Plus 刷Windows10单系统
  17. win10磁盘管理_Win10系统如何分区
  18. android 背光灯分析,Android灯光系统--深入理解背光灯
  19. 送给作为程序员的TA的11份礼物
  20. 【python自动化办公(10)】python利用pdfplumber库提取PDF文字以及表格内容(复杂表格字段数据的处理)

热门文章

  1. Java 7:使用NIO.2进行文件过滤–第3部分
  2. Spring MVC控制器JUnit测试
  3. 用于Spring JPA2后端的REST CXF
  4. 使用Java VisualVM分析您的应用程序
  5. Spring3 RESTful Web服务
  6. Linux系统下MySQL的导出数据语句SELECT … INTO OUTFILE的用法
  7. python快速排序算法循环_算法:快速排序的Python实现
  8. C - 指针总结
  9. html标签转换日期格式,input标签的type为date,显示的日期格式样式更改
  10. 计算机网络教学方式探讨论文,学生老师论文,关于关于高中计算机网络教学效率提升相关参考文献资料-免费论文范文...