一、Date类简介

日期类主要包括Date类与Calendar类,这一节我们先介绍Date类, Date 表示特定的瞬间,精确到毫秒。Date类用于表示日期和时间,在计算机中的表示和我们现实世界使用差不多,但是还是有点区别的,而且还有中西文化之间的差异,所以在学习这个类之前,我们清楚Date类和现实世界之间对世界的之间的差异:

  • 年份由整数表示,但是Date类的年份由1900开始算,也就是Date类的年份为y,那么现实世界就是 y + 1900 表示。

  • 月份由从 0 至 11 的整数表示,也就是0 是一月、1 是二月等等;因此 11 是十二月。

  • 日期(一月中的某天)按通常方式由整数 1 至 31 表示,这点和现实世界一致。

  • 小时由从 0 至 23 的整数表示。因此,从午夜到 1 a.m. 的时间是 0 点,从中午到 1 p.m. 的时间是 12 点,这点和现实世界一致。

  • 分钟按通常方式由 0 至 59 的整数表示,这点和现实世界一致。

  • 秒由 0 至 61 的整数表示;值 60 和 61 只对闰秒发生,尽管那样,也只用在实际正确跟踪闰秒的 Java 实现中。于按当前引入闰秒的方式,两个闰秒在同一分钟内发生是极不可能的,但此规范遵循 ISO C 的日期和时间约定。

  • Date可是精确到毫秒,Date的元毫秒从1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

二、Date类常用方法

在java中,日期时间用java.util.Date来表示,调用默认构造器Data(),将会创建一个当前系统时间的Date对象,时间精确到毫秒。Date类常用方法是:

Date()

分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。

boolean after(Date when)

测试此日期是否在指定日期之后。

boolean before(Date when)

测试此日期是否在指定日期之前。

int compareTo(Date anotherDate)

比较两个日期的顺序。

其它的还有很多获得年月日时分秒的函数,但是这些方法都已经过期,这些方法都已经Calendar.get(...)方法替代了,当然虽然过期了,但是还是可以使用的。示例代码如下:

public class DateStu {public static void main(String[] args) {// 获得操作系统的当前时间Date date = new Date();Date date2=new Date(1997,6,7);System.out.println(date.before(date2));//如果date2大于date返回 1  等于返回 0  小于 -1
        System.out.println(date2.compareTo(date));//
        System.out.println("年:" + (date.getYear()+1900) + ",月:" + (date.getMonth()+1)+ ",日:" + date.getDate() + ",星期:" + date.getDay() + ",时:"+ date.getHours() + ",分:" + date.getMinutes() + ",秒:"+ date.getSeconds());System.out.println("现在的毫秒:"+date.getTime()/1000);System.out.println(date.toString());System.out.println(date.toLocaleString());//本地时间格式
}}

程序输出如下:

true

1

年:2014,月:2,日:20,星期:4,时:23,分:3,秒:5

现在的毫秒:1392908585

三、时间的格式化显示

各系统在显示时间的格式是不统一的,在中国一般采用英式日期,如“2013-02-02 17:30:24”的格式,而在美国时间的显示则为“月-日-年”的格式“02-02-2013 17:30:24”。要想格式化时间或者把字符串转换为Date类,可以使用java.text.Dateformat抽象类规定日期格式化的操作,具体常用的实现是java.text.SimpleDateformat类。

示例代码如下:

//1990年  9 月 4 日
//"yyyy.MM.dd G 'at' HH:mm:ss z"  2001.07.04 AD at 12:08:56 PDT
//HH 24 小时,hh 12小时
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd");
String dateFromt= sdf.format(date);//日期转换为字符串
System.out.println(dateFromt);//把字符串转换为日期
String inputdateFString="2013年09月8";
try {Date inputDate=sdf.parse(inputdateFString);System.out.println(inputDate);
} catch (ParseException e) {// TODO Auto-generated catch block
    e.printStackTrace();
}

程序输出如下:

Thu Feb 20 23:03:05 CST 2014

2014-2-20 23:03:05

java中的Date类相关推荐

  1. java中使用 Date 和 SimpleDateFormat 类表示时间

    使用 Date 和 SimpleDateFormat 类表示时间 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取 ...

  2. java 中常用的类

    java 中常用的类 Math Math 类,包含用于执行基本数学运算的方法 常用API 取整 l  static double abs(double  a) 获取double 的绝对值 l  sta ...

  3. Java 中的 BigDecimal 类你了解多少?

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:什么?你还在使用fastjson,性能太差了个人原创+1博客:点击前往,查看更多 作者:HikariCP 链接: ...

  4. 四十一、深入Java中的 File类

    @Author:Runsen @Date:2020/6/6 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  5. 后端:Java中的BigDecimal类你了解多少?

    我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题.如下一段代码: System.out.println(0.05 + 0.01); System.out.println(1.0 - 0.42) ...

  6. Java中的系统类–属性,System.out.println()

    System class in java is one of the core classes and I have never seen any java developer who doesn't ...

  7. JAVA基础(12.Java中的常用类String)

    目录 1.前言 2.日期(时间)相关类 2.1 日期类的应用场景 2.1.1Java中的日期相关的几个类 3. Java中的常用类学习方式 3.1 什么是常用类?为什么要学习? 3.2 怎么使用Jav ...

  8. 探索 Java 中的 Date, Calendar, TimeZone 和Timestamp

    探索 Java 中的 Date, Calendar, TimeZone 和Timestamp java 2010-12-31 08:56:49 阅读8 评论0  字号:大中小 订阅 对象 宋晟 (sh ...

  9. Java中的BigDecimal类你了解多少?

    点击上方"IT牧场",选择"设为星标"技术干货每日送达! 来源:https://urlify.cn/naiEva 前言 我们都知道浮点型变量在进行计算的时候会出 ...

  10. Java中的Object类和Class类

    Copyright©Stonee 在Java中,无论是类还是接口,它们在JVM的内存逻辑模型中都会存在Super和Class指针,分别指向根类(Object类)和反射类(Class类) 在这一篇blo ...

最新文章

  1. 今天有点时间,想写一个小说,说说面向对象的故事,主人是人类!(一)
  2. git学习指南_几十张动图告诉你 Git到底是怎么玩的
  3. 【C/C++】等分或指定行数把txt文档拆分成多份
  4. Webstorm中提示Cannot find module 'webpack.dev.conf.js'
  5. 无法嵌入互操作类型 请改用适用的接口_机器视觉可用的不同电缆和连接器类型以及相关利弊分析...
  6. LInux下du, df, top, free, pstack, su, sudo, adduser, password命令
  7. Android开发笔记(一百四十三)任务调度JobScheduler
  8. Windows多线程应用程序的编译和链接
  9. Redis GEO 特性在 LBS 中的应用总结
  10. Cisco无线AP在复杂企业环境配置指南
  11. K8s高可用集群部署
  12. 序列化:ProtoBuf 与 JSON 的比较 !
  13. 计算机i网络管理员证书四级,软考网络管理员试题练习(4)
  14. 【故事编程:Lambda表达式】之最甜的巧克力(二)
  15. 【CF335 E】Counting Skyscrapers
  16. java抽象类例子月薪年薪程序_利用抽象类给一个有工资收入和稿费收入的小伙伴算税...
  17. 《基于短时分数阶傅里叶变换的时频分析方法》
  18. 360手机怎样更新系统版本android,360手机推出新系统更新 N5的安卓7.X测试版发布...
  19. 官僚、傲慢、冷漠的腾讯开放平台
  20. Spring Boot保姆级入门,还不会过来胖我

热门文章

  1. Caffe傻瓜系列(11):caffe中的lr_policy选择
  2. C++ 动态命名和修改变量名 动态生成变量名 define
  3. C++ 纯虚函数 虚函数 override
  4. 使用悲观锁还是乐观锁
  5. 区块链 以太坊 验证区块
  6. hyperledger fabric cryptogen: command not found
  7. 基于springboot+LayUI的校园信息发布平台
  8. 对空进行判断需要注意什么?
  9. java多线程-线程安全
  10. arduino 读取串口信息hex_进阶教程1:Arduino串口通信与电脑控制LED