Saul's blog Saul's blog
首页
后端
分布式
前端
更多
分类
标签
归档
友情链接
关于
GitHub (opens new window)

Saul.J.Wu

立身之本,不在高低。
首页
后端
分布式
前端
更多
分类
标签
归档
友情链接
关于
GitHub (opens new window)
  • Java入门基础

  • Java核心基础

    • 多线程

    • Java常用类

      • 字符串相关的类
      • JDK8之前日期时间API
        • 简图
        • System类
        • Date类
        • SimpleDateFormat类
        • Calendar类
      • JDK8中新日期时间API
      • Java比较器
      • 其他类
      • Java随机数
    • 枚举类与注解

    • Java集合

    • 数据结构与算法

    • 泛型

    • IO流

    • 网络编程

    • 反射

    • 函数式编程

  • 设计模式

  • Web开发

  • SpringBoot

  • 微服务

  • Elasticsearch

  • 运维

  • 后端
  • Java核心基础
  • Java常用类
SaulJWu
2020-12-23

JDK8之前日期时间API

# 简图

image-20201223191712402

# System类

所属包:java.lang.System

System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。也称为时间戳。

此方法适于计算时间差。

计算世界时间的主要标准有:

  • UTC(Coordinated Universal Time)
  • GMT(Greenwich Mean Time)
  • CST(Central Standard Time)
@Test
public void test1() {
    long time = System.currentTimeMillis();
    System.out.println("time = " + time);
}
1
2
3
4
5

# Date类

所属包:java.util.Date

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

  • 构造器:
    • Date():使用无参构造器创建的对象可以获取本地当前时间。
    • Date(long date):创建指定毫秒数的Date对象。
  • 常用方法
    • getTime():返回自1970 年1 月1 日00:00:00 GMT 以来此Date 对象表示的毫秒数。也称为时间戳。
    • toString():把此Date 对象转换为以下形式的String:dow mon dd hh:mm:sszzzyyyy其中:dow是一周中的某一天(Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准。
    • 其它很多方法都过时了。

java.sql.Date

java.sql.Date是java.util.Date的子类。对应着数据库中日期类型的变量。

如何实例化对象?

Date(long date):创建指定毫秒数的Date对象。

如何相互转换?

Date date1 = java.sql.Date(3452345235L);
java.sql.Date date2 = new java.sql.Date(date1.getTime());
1
2

# SimpleDateFormat类

所属包:java.text.SimpleDateFormat

Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类。

它有2个操作,允许进行格式化和解析。

格式化:日期->文本、

解析:文本->日期。

格式化:

  • SimpleDateFormat() :默认的模式和语言环境创建对象
  • public SimpleDateFormat(String pattern):该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用:
  • public String format(Date date):方法格式化时间对象date

解析:

  • public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期。

image-20201223194623751

练习:

@Test
public void test3() {
    Date date = new Date();
    SimpleDateFormat formater1 = new SimpleDateFormat();
    System.out.println("formater1.format(date) = " + formater1.format(date));
    SimpleDateFormat formater2 = new SimpleDateFormat("yyyy年MM月dd日 EEE HH:mm:ss");
    System.out.println("formater2.format(date) = " + formater2.format(date));
    try {
        Date date2 = formater2.parse("2008年08月08日 星期一 08:08:08");
        System.out.println("date2 = " + date2);
    } catch (ParseException e) {
        e.printStackTrace();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# Calendar类

所属包:java.util.Calendar

Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能。(日历)

获取Calendar实例的方法:

  • 使用Calendar.getInstance()方法
  • 调用它的子类GregorianCalendar的构造器。

常用方法:

  • get(int field)

    • 一个Calendar的实例是系统时间的抽象表示,通过该方法来取得想要的时间信息。
    • field是指时间类型,比如YEAR、MONTH、DAY_OF_WEEK、DAY_OF_MONTH、HOUR_OF_DAY 、MINUTE、SECOND,等等……
  • public void set(int field,int value)

    • 设置时间
  • public void add(int field,int amount)

    • amount为正数,增加时间。
    • amount为负数,减少时间。
  • public final Date getTime()

    • 根据日历类获取Date时间。
  • public final void setTime(Date date)

    • 把Date设置为日历类。

注意:

  • 获取月份时:一月是0,二月是1,以此类推,12月是11
  • 获取星期时:周日是1,周二是2,。。。。周六是7

练习:java

@Test
public void test4() {
    Calendar calendar = Calendar.getInstance();
    // 从一个Calendar 对象中获取Date 对象
    Date date = calendar.getTime();
    // 使用给定的Date 设置此Calendar 的时间
    date = new Date(234234235235L);
    calendar.setTime(date);
    calendar.set(Calendar.DAY_OF_MONTH, 8);
    System.out.println("当前时间日设置为8后,时间是:" + calendar.getTime());
    calendar.add(Calendar.HOUR, 2);
    System.out.println("当前时间加2小时后,时间是:" + calendar.getTime());
    calendar.add(Calendar.MONTH, -2);
    System.out.println("当前日期减2个月后,时间是:" + calendar.getTime());
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
帮我改善此页面 (opens new window)
#System#Date#SimpleDateFormat#Calendar
上次更新: 2020/12/24, 02:52:47
字符串相关的类
JDK8中新日期时间API

← 字符串相关的类 JDK8中新日期时间API→

最近更新
01
zabbix学习笔记二
02-28
02
zabbix学习笔记一
02-10
03
Linux访问不了github
12-08
更多文章>
Theme by Vdoing | Copyright © 2020-2022 Saul.J.Wu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式