Java | 日期类型的绍介和操作
Date类
Date类在java.util.Date,Date类表示特定的瞬间,精确到毫秒。(毫秒是千分之一秒)毫秒可以对时间和日期进行计算,可以把日期转换为毫秒进行计算,计算完毕,再把毫秒转换为日期。
把日期转换为毫秒,时间原点为1970年1月1日 00:00:00(英国格林威治),毫秒数就是时间原点到当前日期的毫秒数。(注意一下:中国当前的时区为GMT+8,就是东八区,所以得加上八小时)
获取当前日期的毫秒数
System.out.println(System.currentTimeMillis());
把毫秒数转换为天数为:24*60*60*1000=86400000(毫秒)
Date类的构造方法
public Date() 无参构造方法,直接获取当前时间 和 public Date(long date);有参构造方法,跟据毫秒值来获取时间
使用:
public Date() 无参构造方法,直接获取当前时间
//获取当前时间
Date date = new Date();
System.out.println(date);
//Mon Mar 30 23:29:33 CST 2020
public Date(long date);有参构造方法,跟据毫秒值来获取时间
//跟据0毫秒来获取时间,因为中国是在东八区,所以初始时间为8点
Date date = new Date(0L);
System.out.println(date);
//Thu Jan 01 08:00:00 CST 1970
Date类的常用的方法
现在我们常用的也就一个就是:public Long getTime();这个方法是用来获取毫秒值的,我们可以跟据毫秒值来进行日期的计算。
//跟据0毫秒来获取时间,因为中国是在东八区,所以初始时间为8点
Date date = new Date(0L);
long time = date.getTime();
System.out.println(time); //0
//现在的时间
Date date1 = new Date();
long time1 = date1.getTime();
System.out.println(time1); //1585582432578
DateFormat类
java.text.DateFormat是日期/时间格式化子类的抽象类,我们通过这个类权帮我们完成日期和文本之间的转换也就是可以在Date对象和String对象之间进行来回转换。
格式化:按照指定格式,从Date对象转换为String对象。
String format(Date date);
解析: 按照指定的格式,从String对象转换为Date对象。Date parse(String source);
DateFormat类的使用
因为 DateFormat 类是一个抽象类,但是他只有一个子类,所以我们可以使用他的子类来进行操作,SimpleDateFormat
SimpleDateFormat类我们主要使用的就是这个的类的构造方法,别的方法我们基本上也不用。
它有四个构造方法,但是我们只用一个,就是SimpleDateFormat(String pattern),参数就是要构建成的日期格式。
下面的两张图片就是使用的方法和格式:


上面图片中的字母使用的时候都不可以改变
使用:
格式化:
//创建SimpleDateFormat,指定日期格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//创建一个日期类型
Date date = new Date();
//把日期类型格式化为字符串对象
String format = simpleDateFormat.format(date);
System.out.println(format); //2020-03-30 23:52:46
解析:
//创建SimpleDateFormat,指定日期格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//创建一个日期字符串
String str = "2019-3-19 11:22:33";
try {
//把日期字符串解析成为日期类型
Date parse = simpleDateFormat.parse(str);
System.out.println(parse); //Tue Mar 19 11:22:33 CST 2019
//这个异常为解析异常,如果解析时格式不一样,就会抛出这个异常
} catch (ParseException e) {
e.printStackTrace();
}
Calendar类
java.util.Calendar是日厉类,在Date后面出现,就是因为它的出现,所以我们替换掉了许多Date里面的方法,这个类将所有可能用到的时间信息封装为静态成员变量,方便获取。 public abstract class Calendar所以说,这一个类是一个抽象类。并且它只有一个子类,如果想用这个类,可以使用他的一个静态方法,这个静态方法能够直接返回它的子类对象。
static Calendar getInstance()
Calendar类里面的方法和变量的绍介
我们通常使用这个类来做日期类型的计算,但是,在计算之前,我们得了解一下这个类里面的静态变量:
public static final int YEAR;//年public static final int MONTH;//月public static final int Date;//日public static final int HOUR;//时public static final int MINUTE;//分public static final int SECOND;//秒
常用的方法:
public void setTime(Date date)使用给定的 Date设置此日历的时间
public Date getTime()获取此日历的时间
public int get(Date date)返回给定日厉字段的值
public void add(Date date)根据指定的规则,给指定的日厉添加或者减少时间
Calendar类的使用
创建一个Calendar类
Calendar instance = Calendar.getInstance();
public void setTime(Date date) 使用给定的 Date设置此日历的时间
public Date getTime() 获取此日历的时间
Calendar cal = Calendar.getInstance();
//创建一个原点时间
Date date = new Date(0L);
//设置日厉为原点时间
cal.setTime(date);
//获取日厉现在的时间
Date time = cal.getTime();
System.out.println(time); //Thu Jan 01 08:00:00 CST 1970
public int get(Date date) 返回给定日厉字段的值
Calendar cal = Calendar.getInstance();
//创建一个原点时间
Date date = new Date(0L);
//设置日厉为原点时间
cal.setTime(date);
//通过get方法来获取指定的年份
int year = cal.get(Calendar.YEAR);
System.out.println(year); //1970
//通过get方法来获取指定的月份
int monday = cal.get(Calendar.MONDAY);
//因为国外的月份都是从0开始的,所以如果我们想用的话,得加上1
System.out.println(monday + 1);
public void add(Date date) 根据指定的规则,给指定的日厉添加或者减少时间
我们通常跟据这个方法来计算时间
Calendar cal = Calendar.getInstance();
//创建一个原点时间
Date date = new Date(0L);
//设置日厉为原点时间
cal.setTime(date);
//通过给定的日厉字段来进行年份加一的操作
cal.add(Calendar.YEAR, 1);
System.out.println(cal.getTime()); //Fri Jan 01 08:00:00 CST 1971
//通过给定的日厉字段来进行年份减一的操作
cal.add(Calendar.YEAR, -1);
System.out.println(cal.getTime()); //Thu Jan 01 08:00:00 CST 1970
//在操作的时候,只要给定日厉字段,用正数是加上,用负数是减去
细节决定成败!
个人愚见,如有不对,恳请扶正!
Java | 日期类型的绍介和操作的更多相关文章
- Java 学习笔记 (三) Java 日期类型
以下内容摘自: https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...
- java日期类型与字符串类型的相互转换
package cn.zwq.convert; import java.text.ParseException; import java.text.SimpleDateFormat; import j ...
- java mysql 日期类型
mysql(版本:5.1.50)的时间日期类型如下: datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59: ...
- java日期操作大全
摘自(http://www.blogjava.net/i369/articles/83483.html) java日期操作 大全 先来一个: 取得指定月份的第一天与取得指定月份的最后一天 http ...
- [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- DateTimeHelper【日期类型与字符串互转以及日期对比相关操作】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 实现日期和字符串之间的转换以及日期的相关操作: 1.日期格式的字符串输出为Date类型: 2.将Date类型以指定格式输出: 3.将 ...
- java和数据库中日期类型的常见用法
(1)java中日期类型:Date.Timestamp(2)数据库中:Date.Timestamp(3)字符串和Date之间的格式化转换: SimpleDateFormat类方法: format ...
- java和mysql之间的时间日期类型传递
摘自:http://blog.csdn.net/weinianjie1/article/details/6310770 MySQL(版本:5.1.50)的时间日期类型如下: datetime 8byt ...
- java日期操作 大全
先来一个: 取得指定月份的第一天与取得指定月份的最后一天 http://iamin.blogdriver.com/iamin/847990.html )); } ...
随机推荐
- 微服务系列(二)GRPC的介绍与安装
微服务系列(二)GRPC的介绍与安装 1.GPRC简介 GRPC是Google公司基于Protobuf开发的跨语言的开源RPC框架.GRPC基于HTTP/2协议设计,可以基于一个HTTP/2链接提供多 ...
- GO学习-(34) Go实现日志收集系统3
Go实现日志收集系统3 再次整理了一下这个日志收集系统的框,如下图 这次要实现的代码的整体逻辑为: 完整代码地址为: etcd介绍 高可用的分布式key-value存储,可以用于配置共享和服务发现 ...
- GO学习-(16) Go语言基础之文件操作
Go语言文件操作 本文主要介绍了Go语言中文件读写的相关操作. 文件是什么? 计算机中的文件是存储在外部介质(通常是磁盘)上的数据集合,文件分为文本文件和二进制文件. 打开和关闭文件 os.Open( ...
- 针对Spring MVC的Interceptor内存马
针对Spring MVC的Interceptor内存马 目录 针对Spring MVC的Interceptor内存马 1 基础拦截器和调用流程的探索 1.1 基础拦截器 1.2 探索拦截器的调用链 1 ...
- CodeGen字段循环Field Loop
CodeGen字段循环Field Loop 字段循环是一个模板文件构造,它允许迭代CodeGen拥有的有关字段的集合.这些字段定义可以来自以下两个位置之一: •如果基于从存储库结构中获取的信息生成代码 ...
- MySQL泛泛而谈(3W字)
下面对于MySQL进行相关介绍,文档的内容较为基础,仅仅设计操作,少量原理,大佬请绕道哦. 废话少说,开冲! 一.MySQL架构介绍 1-MySQL简介 概述 MySQL是一个关系型数据库管理系统,由 ...
- robotframework用户关键字创建过程
robotframework是一个关键字驱动框架,核心在于关键字的应用.系统本身通过各种库自带了大量关键字,同时支持用户自定义关键字.关键字可以简单理解为各种处理数据的方法. 关键字区别与用户参数. ...
- windows 7系统安装与配置Tomcat服务器环境
windows 7系统安装与配置Tomcat服务器环境 学习了一个月的java基础,终于要迈向java web领域.学习java web开发就离不开服务器的支持,由于本人是菜鸟,只好求助度娘谷哥.在此 ...
- PTA题目集7-9总结
PTA题目集7-9总结 一.前言 题目集七:该题集为轮到图形卡片排序游戏题,主要考查的知识点有类的继承,ArrayList泛型的使用,Compabale接口的运用,多态的使用方法以及接口的应用,难度较 ...
- 空指针的解决方案Optional包装类
有道云笔记地址 (建议有道云打开,markdown文档,直接拷贝过来有一些问题) 引言 在java的开发中,有一个问题始终会伴随着开发的进程.记得我第一个项目的时候,有一个同事在评论我的代码的时候说到 ...