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月。

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

转载于:https://www.cnblogs.com/miaoxingren/p/9393932.html

java -Date、DateFormat、Calendar类相关推荐

  1. java Date 和 Calendar类 万字详解(通俗易懂)

    Date类介绍 Date类构造器 Date类使用 关于SimpleDateFormat类 Date类对象的格式化 构造Date对象的补充 Date类对象成员方法 Calendar类介绍及使用 字段演示 ...

  2. Java Date 和 Calendar

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

  3. java calendar 下个月_使用Java中的Calendar类增加一个月

    为Java中的Calendar类导入以下包import java.util.Calendar; 首先,创建一个Calendar对象并显示当前日期Calendar calendar = Calendar ...

  4. 【Java从入门到头秃专栏 】(三) 控制流程 Math Date DateFormat Calendar System BigDecimal Random

    目录 1 控制流程 2 Math类 3 Date类 4 DateFormat类 5 Calendar类(日历类) 6 System类 7 BigDecimal类 8 Random类(随机数) 1 控制 ...

  5. java date 格式化_Date类日期格式化

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /* * 对日期进 ...

  6. Java Date 和 Calendar 实例

    Java 之 Date 和 Calendar 实例 [java] view plaincopy print? package com.homer.learn; import java.text.Dat ...

  7. java Dated Dateformat Calendar

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

  8. java:通过Calendar类正确计算两日期之间的间隔

    在开发Android应用时偶然需要用到一个提示用户已用天数的功能,从实现上来看无非就是持久化存入用户第一次使用应用的时间firstTime(通过SharedPreferences .xml.sqlit ...

  9. Date、Calendar类

     时间和日期处理 在程序中,某个固定的时间代表的都是一个时间点,也就是一个时间的瞬间,例如2009年3月8日15点50分0秒,在实际的应用中,经常需要对于两个时间进行比较或计算时间之间的差值,这些功能 ...

  10. java Date(日期类)和Calenda(日历类)

    Java 关于时间日期的处理有两个基础类 Calendar 和 Date . Calendar 有子类 GregorianCalendar : Date 有子类 (java.sql.) Date, T ...

最新文章

  1. feachall php_timthumb.php详解
  2. FFmepg 多线程解码历程
  3. html选择树形菜单代码,jquery+css实现html选择树或树形菜单
  4. 【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察
  5. Python 模块EasyGui
  6. 用计算机弹奇迹再现谱子,《原神》奇迹再现乐谱分享 风物之诗琴乐谱分享
  7. EVEREST的使用教程
  8. 《财务报表分析从入门到精通》——读书笔记
  9. python项目打包部署到ios_Python实现iOS自动化打包详解
  10. 源码分析 --- Spark如何确定Splits和分区数
  11. 2010年下半年卷烟品牌目录
  12. 中国地质大学英语语音学习笔记(一):元音(单元音,双元音,三元音)
  13. C语言程序设计第六次作业——循环结构(2)
  14. Git步步进阶---Git tag操作全解析
  15. html制作电影界面,电影网站界面设计HTML_CSS模板
  16. matplolib种横坐标斜着显示
  17. macOS 上好用的任务管理工具「Doo」
  18. 2022 软件测试简答题【太原理工大学】
  19. dell perch330_重建Perch UI-而不是通常的重新设计
  20. hp服务器关掉来电自动重启,HP笔记本出现关机自动重启的解决办法

热门文章

  1. 【数据蒋堂】第28期:迭代聚合语法
  2. windows 8.1 IE11 和 windows 10 Edge IE11 FlashPlayer 的安装与卸载
  3. 去360总部参加网络信息安全会议经历
  4. 4月第1周回顾:微软向雅虎发最后通牒 头号***伏法
  5. hue是不是集成了oozie_在hue里面集成spark2,使用oozie的调度
  6. linux下配置ndk路径,NDK调试arm-linux-androideabi-addr2line工具的使用
  7. JavaScript垃圾回收
  8. Netty空闲心跳检测机制
  9. mysql geometry 附近的人_mysql中geometry类型的简单使用(搜索附近的人)
  10. Java 算法 判定字符位置