第65集:常用类Date类的使用JDk源码分析

Date时间类(java.util.Date)

  1. 在标准Java类库中包含一个Date类。它的对象表示一个特定的瞬间,精确到毫秒。

  2. Date()分配一个Date对象,并初始化此对象为当前的日期和时间精确到毫秒。

    public Date() {this(System.currentTimeMillis());}
  3. Date(long date) 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

    /*** Allocates a <code>Date</code> object and initializes it to* represent the specified number of milliseconds since the* standard base time known as "the epoch", namely January 1,* 1970, 00:00:00 GMT.** @param   date   the milliseconds since January 1, 1970, 00:00:00 GMT.* @see     java.lang.System#currentTimeMillis()*/public Date(long date) {fastTime = date;
    }
  4. boolean after(Date when) 测试此日期是否在指定日期之后。

    public boolean after(Date when) {return getMillisOf(this) > getMillisOf(when);
    }
  5. boolean before(Date when)  测试此日期是否在指定日期之前。

    public boolean before(Date when) {return getMillisOf(this) < getMillisOf(when);
    }
  6. Boolean equals(Object obj) 比较两个日期的相等性。

    public boolean equals(Object obj) {return obj instanceof Date && getTime() == ((Date) obj).getTime();
    }
  7. Long getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

    public long getTime() {return getTimeImpl();
    }private final long getTimeImpl() {if (cdate != null && !cdate.isNormalized()) {normalize();}return fastTime;
    }
  8. void setTime(long time)返回

     public void setTime(long time) {fastTime = time;cdate = null;
    }
  9. String toString() 把此 Date 对象转换为以下形式的 String:dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。

  10. MAC导入类的快捷键:command+shift+O

  11. 查看API文档大家可以看到很多方法过时了,JDK1.1之前的Date包含了:日期操作、字符串转化成时间对象、时间对象。1.1之后,日期操作使用:Canlendar类来,字符串转化成为时间对象使用DateFormat。

示例代码

public class Test065 {public static void main(String[] args){Date d = new Date();//得到当前时间的毫秒数long a = System.currentTimeMillis();System.out.println(d);System.out.println(a);Date d2 = new Date(1000);System.out.println(d2.toString());//自动加了时区System.out.println(d2.toGMTString());//标准格林尼治时间,已不建议使用d2.setTime(232323423);System.out.println(d2.getTime());System.out.println(d.getTime()<d2.getTime());//等同于beforeSystem.out.println(d.before(d2));System.out.println(d.getTime()>d2.getTime());//等同于afterSystem.out.println(d.after(d2));Date date1 = new Date();System.out.println(date1.toString());long i = date1.getTime();System.out.println(i);Date date2 = new Date(i-1000);Date date3 = new Date(i+1000);System.out.println(date1.after(date2));System.out.println(date1.before(date2));System.out.println(date1.equals(date2));System.out.println(date1.after(date3));System.out.println(date1.before(date3));System.out.println(date1.equals(date3));System.out.println(new Date(1000L*60*60*24*365*39L).toString());}
}

第66集:常用类DateFormat和SimpleDateFormat时间和字符串的互相转换

  1. DateFormat和SimpleDateFormat类的作用:将时间对象与指定格式的字符串进行互相转化。

  2. DateFormat是一个抽象类,一般使用其子类SimpleDateFormat类。

格式化字符含义

示例代码

package com.test066;import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class Test066 {public static void main(String[] args) {Date a = new Date(123124124L);System.out.println("直接输出Date对象的结果:\t" + a);//System.out.println(a.toString());    DateFormat b = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");String str = b.format(a);System.out.println("使用DateFormat类的format方法将Date对象处理成格式化字符串的结果:\t" + str);String str2 = "1977-7-7";DateFormat c = new SimpleDateFormat("yyyy-MM-dd");try {Date d = c.parse(str2);System.out.println("使用DateFormat类的parse方法将格式化字符串处理成Date对象的结果:\t" + d);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

【131天】尚学堂高淇Java300集视频精华笔记(65-66)相关推荐

  1. 【133天】尚学堂高淇Java300集视频精华笔记(71-72)

    第71集:常用类/file类/打印目录树状结构/递归算法 课堂代码 package com.test071;import java.io.File;public class Test071 {publ ...

  2. 【138天】尚学堂高淇Java300集视频精华笔记(84)

    第84集:太阳系模型/基本类的封装/Star类的建立 本集知识点 将对象尽可能的抽象,可以有效减少代码量,比如此例中的Star类 package com.test084_087_solar;impor ...

  3. 【135天】尚学堂高淇Java300集视频精华笔记(74-76)

    第74-75集:异常机制.trycatchfinallyreturn执行顺序.捕获异常.声明异常throw.方法重写中异常的处理.手动抛出异常 异常的处理办法一:捕获异常 try try语句指定了一段 ...

  4. 【147天】尚学堂高淇Java300集视频精华笔记(108-109)

    第108集:容器equals和hashcodeJDK源代码分析 本集知识点 Java中规定,若两个对象equals比较后内容相等(为true),则hashCode必须相等,反之不然.[原因见内存分析图 ...

  5. 【153天】尚学堂高淇Java300集视频精华笔记(122-123)

    叨叨两句(2017.7.8) 我现在发现我太适合当程序员了,稍微懂点知识后想法就一堆一堆的,哈哈. 今天敲下面这个冒泡排序时感觉太特么好了.原来学编程最快乐的事情就是懂了一些知识后,把它变成可以在电脑 ...

  6. 【160天】尚学堂高琪Java300集视频精华笔记(129)

    明天开始,专栏增加一个黑马程序员的课程更新. 其它容器收尾讲解 队列Queue与Deque(单向队列与双向队列) Enumeration(较老的接口,JDK1.5前使用频繁,维护旧系统会用到) Has ...

  7. 尚学堂 高琪JAVA300集第十一章作业 编程题答案

    本人 JAVA初学者 在寻找这一方面的答案时没有看见 ,本着分享的精神 自己做了出来 也就传上来了 水平有限 存在有错的地方或者改进的方法 ,望大佬们可以提出 万分感谢. 1.1. 设计一个多线程的程 ...

  8. 【JavaSE】高淇300集第一季笔记

    ------------------------------------------------------1.如何学习---------------------------------------- ...

  9. python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...

    P82-递归函数-阶乘计算案例 #使用递归函数计算阶乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=facto ...

最新文章

  1. 按计算机的地位划分计算机网络可分为,2010年全国自考计算机网络基本原理模拟试卷(三)及答案...
  2. 360手机浏览器_360手机浏览器9.0新功能测评
  3. 关于 create-react-app 自定义 eslint文件配置解决方案
  4. 架构师必备!java三大特性用代码表现
  5. 判断某个字符出现的次数
  6. DHTML Scriptlets 容器对象参考手册
  7. bzoj 4561: [JLoi2016]圆的异或并(扫描线+set)
  8. SharedCache-共享缓存概况和初步运用实例(1)
  9. Perl打造溯雪拙劣仿制品
  10. 局域网体系结构与IEEE标准
  11. js制作动态图片时钟
  12. JS 实现复制粘贴功能
  13. 网站视频倍速播放和进度自定义调整
  14. 2022年交通工具公开拍卖市场研究报告
  15. echarts城市地图加标注
  16. java程序设计基础实验_JAVA程序设计基础实验1.doc
  17. 程序员相亲 满屏尴尬
  18. 20几岁,不要急着长大
  19. Golang中import 导入包的几种方式:点,别名与下划线
  20. 【SAP BW】BW非累积模型构建

热门文章

  1. Java IO 节点流与处理流类型
  2. latex排版基础_排版基础分类
  3. 真诚推荐7个能助你成长的前端大佬
  4. 手写一个合格的前端脚手架
  5. 2021年,推荐这几个优质公众号碎片化学习
  6. 若川的2018年度总结,平淡无奇
  7. Flutter RichText支持自定义文字背景
  8. 如何创建一份springboot的docker镜像
  9. 最简单 - 单例模式
  10. 利用解构赋值获取后端特定字段数据