Date类概述

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

毫秒概念:1000毫秒=1秒

毫秒的0点:

System.currentTimeMillis()  相当于Date d = new Date(); 返回值long类型时间戳

用于获取当前日期的毫秒值

时间的原点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0

注意:时间和日期的计算,必须依赖毫秒值

继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象。

//创建日期对象,把当前的毫秒值转成日期对象

Date date = new Date(1607616000000L);//把时间戳转换成日期对象

System.out.println(date);

//打印结果:Fri Dec 11 00:00:00 CST 2020

Date类常用方法

date.getTime()  //把日期对象转化成时间戳

DateFormat类概述

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。

我们通过这个类可以帮我们完成日期和文本之间的转换。

继续阅读API,DateFormat 可帮助进行格式化并解析任何语言环境的日期。对于月、星期,甚至日历格式(阴历和阳历),其代码可完全与语言环境的约定无关。

日期格式

要格式化一个当前语言环境下的日期也就是日期 -> 文本),要通过下面的方法来完成。DateFormat是抽象类,我们需要使用其子类SimpleDateFormat来创建对象。

  构造方法

DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

  DateFormat类方法

String str = df.format(date);  //日期对象转换成字符串

Date date = df.parse(str);  //字符串转化成欸其对象

df.setTimeZone(TimeZone.getTimeZone("GMT+0"));//将时区改为0时区,可以解决时间运算中出现时差问题

代码演示:

//创建日期格式化对象,在获取格式化对象时可以指定风格

DateFormat df= new SimpleDateFormat("yyyy-MM-dd");//对日期进行格式化

Date date = new Date(1607616000000L);

String str_time = df.format(date);

System.out.println(str_time);//2020年12月11日

l  DateFormat类的作用:即可以将一个Date对象转换为一个符合指定格式的字符串,也可以将一个符合指定格式的字符串转为一个Date对象。

指定格式的具体规则我们可参照SimpleDateFormat类的说明,这里做简单介绍,规则是在一个字符串中,会将以下字母替换成对应时间组成部分,剩余内容原样输出:

  当出现y时,会将y替换成年

  当出现M时,会将M替换成月

  当出现d时,会将d替换成日

  当出现H时,会将H替换成时

  当出现m时,会将m替换成分

  当出现s时,会将s替换成秒

DateFormat类常用方法

  format方法,用来将Date对象转换成String

  parse方法,用来将String转换成Date(转换时,该String要符合指定格式,否则不能转换)。

代码演示:

练习一:把Date对象转换成String

Date date = new Date(1607616000000L);//Fri Dec 11 00:00:00 CST 2020

DateFormat df = new SimpleDateFormat(“yyyy年MM月dd日”);

String str = df.format(date);

//str中的内容为2020年12月11日

练习二:把String转换成Date对象

String str = ”2020年12月11日”;

DateFormat df = new SimpleDateFormat(“yyyy年MM月dd日”);

Date date = df.parse( str );

//Date对象中的内容为Fri Dec 11 00:00:00 CST 2020

Calendar类概念

Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。

Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象,如下:

  Calendar类静态方法

Calendar c = Calendar.getInstance();  //返回当前时间

Calendar类常用方法

l  public static Calendar getInstance() //获取日期对象

l  public int get(int field)  //获取时间字段值,字段参见帮助文档

n  YEAR 年

n  MONTH 月,从0开始算起,最大11;0代表1月,11代表12月。

n  DATE 天

n  HOUR 时

n  MINUTE分

n  SECOND秒

代码演示:

Calendar c = Calendar.getInstance(); //获取当前时间Calendar对象

int year = c.get(Calendar.YEAR); //获取指定字段的值

  public void add(int field,int amount)  //指定字段增加某值

代码演示:

Calendar c = Calendar.getInstance();

//修改当前时间为3天后

c.add(Calendar.DATE, 3);

//修改当前时间为5小时后

c.add(Calendar.HOUR, 5);

l  public final void set(int field,int value)//设置指定字段的值

代码演示:

Calendar c = Calendar.getInstance();

//设置时间为2020年5月20日

c.set(Calendar.YEAR, 2020);

c.set(Calendar.MONTH, 4);

c.set(Calendar.DATE, 20);

l  public final Date getTime()   //获取该日历对象转成的日期对象,Calendar c = c.setTime(Date对象);//将Date对象转化成日历对象

代码演示:

Calendar c = Calendar.getInstance();

Date d = c.getTime();

注意事项

西方星期的开始为周日,中国为周一。

在Calendar类中,月份的表示是以0-11代表1-12月。

日期是有大小关系的,时间靠后,时间越大。

java ->Date、DateFormat、Calendar类的更多相关文章

  1. Java Date and Calendar examples

    Java Date and Calendar examples This tutorial shows you how to work with java.util.Date and java.uti ...

  2. 第28天学习打卡(Date和Calendar类 基本类型的包装类 集合 增强for循环 )

    Date和Calendar类 简介 日期和日历类,用于操作日期相关信息. 构造方法 Date(): 构造一个日期对象,当前系统时间,精确到毫秒. Date(long): 构造一个日期对象,时间为自&q ...

  3. 与时间有关的类Date,DateFormat,Calendar

    Date类用于表示日期和时间.它没考虑国际化问题,所以又设计了另外两个类. Calendar类: 主要是进行日期字段之间的相互操作. 编程实例:计算出距当前日期时间315天后的日期时间,并使用”xxx ...

  4. Java基础(38):Calendar类的应用(优于Date类)

    Calendar 类的应用 Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calen ...

  5. Java从零开始学三十一(DATE和Calendar类)

    一.Date类 Date类是一个相对较为简单的操作类,在使用中直接使用java.util.Date类的构造方法并进行输出就可以得到一个完整的日期 二.Calendar类 Calendar类可以将取得的 ...

  6. Java基础 与时间日期相关的类:System -Date -SimpleDateFormat -Calendar类 -解决后缀.000Z 的时区问题

    笔记总结: /**与时间相关的类:System_Date_SimpleDateFormat_Calendar类 * 1.system 类下的currentTimeMillis() * 输出从1970年 ...

  7. Java:Date、Calendar、Timestamp的使用

    一.Java.util.Date 该对象包含了年月日时分秒信息.具体使用如下代码: //String 转换为Date private static void dateDemo() throws Par ...

  8. Java Date 和 Calendar

    Java 语言的Date(日期),Calendar(日历),DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分.日期是商业逻辑计算一个关键的部分,所有的开发者都应该能够计算 ...

  9. java基础系列--Calendar类

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7136575.html 1.Calendar概述 Java官方推荐使用Calendar来替换 ...

  10. java Dated Dateformat Calendar

    Date类概述 类Date表示特定的瞬间,精确到毫秒.1000毫秒=1秒 时间的原点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0 注意:时间和日期的计算,必须依赖毫秒值 long ...

随机推荐

  1. 尝试用python开发一款图片压缩工具1:尝试 pillow库

    开发目的 我经常使用图片.公众号文章发文也好,还是生活中要使用素材.图片是一种比文字更加直观的载体.但是图片更加占用带宽,很多软件都对图片有大小限制.图片太大也会影响加载速度.我试过几款图片压缩工具, ...

  2. Intellij IDEA 基础设置,个性化设置,好用的设置→_→

    Intellij IDEA 个性化设置 Appearance & Behavior 外观和行为 Keymap 快捷键 Editor 编辑器设置 Plugins 插件 Version Contr ...

  3. 当td中文字过长时,显示为省略号

    当表格中的文字过长时,可选择已省略号显示.这里是用js实现的.首先获取td中的文字长度(innerText.length),如果长度超过了设定的长度,则截取内容,加上省略号显示.示例代码如下: $(f ...

  4. Python常见报错 - 使用openpyxl模块时出现错误: zipfile.BadZipFile: File is not a zip file

    背景 在pycharm项目下,有一个data.xlsx,主要用来存放接口测试用例数据的 要通过openpyxl库去读取data.xlsx,方法: openpyxl.load_workbook(path ...

  5. filter和interceptor的区别

    前言 最近在面试的时候,被问到了这个问题,觉得答得不是很好,在此进行整理和记录,供自己学习,也希望能帮助到大家. 什么是Filter 在java的javax.servlet下有一个接口Filter.任 ...

  6. 数据挖掘入门系列教程(十一)之keras入门使用以及构建DNN网络识别MNIST

    简介 在上一篇博客:数据挖掘入门系列教程(十点五)之DNN介绍及公式推导中,详细的介绍了DNN,并对其进行了公式推导.本来这篇博客是准备直接介绍CNN的,但是想了一下,觉得还是使用keras构建一个D ...

  7. java程序员从小工到专家成神之路(2020版)

    目录 必须掌握的基础知识 1. Git & Github 2. Linux 3. 数据结构和算法 4. HTTP / HTTPS 5. 设计模式 6. 计算机原理 java学习之路 1. 工具 ...

  8. mysql 之 清空表中数据

    清空表的时候注意外键约束 命令版 查询数据库中所有表名select table_name from information_schema.tables where table_schema='DB_n ...

  9. Clustered和Nonclustered Indexes 各自得特点和区别及长短处

    1 簇索引 簇索引对表的物理数据页中的数据按列进行排序然后再重新存储到磁盘上即簇索 引与数据是混为一体的它的叶节点中存储的是实际的数据由于簇索引对表中的数据一 一进行了排序因此用簇索引查找数据很快但由 ...

  10. 学会HTML就可以找工作了

    对编程小白来讲,想要学习门槛低,学习周期短,难度指数可忽略.短时间内可能找一份薪资不错编程相关工作,那就把HTML作为入门级语言吧. 网页设计师 (//upload-images.jianshu.io ...