Java - 时间类 - Tung in ECNU


Java - 时间类

Date类

系统时间

long time = System.currentTimeMillis();
System.out.println(time);
time = time + (long)24*60*60*30*1000;  //ms
System.out.println(time);                           //其实是错误的
time = time + 24L *60*60*30*1000;             //请务必加上L
System.out.println(time);

创建Date对象

Date date = new Date();
System.out.println(date);  //已经重写了toString方法
//Sat Apr 27 15:19:07 CST 2019

常用方法

  1. setTime
  2. getTime
  3. after / before 判断两个时间的前后关系

DateFormat类

DateFormat 是日期 / 时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。

  1. 这是一个抽象类,不能直接创建实例化对象
  2. 属于 java.text.DateFormat ,使用时需要导包

SimpleDateFormat 类

  1. 继承自 DateFormat 类
  2. 用 String 给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat
  3. 常用方法

    1. format 将Date格式化想要的样子
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss a E");
System.out.println(date);
//使用指定的格式
String dateStr = sdf.format(date);  //返回类型是String
System.out.println(dateStr);

Calendar类

从 JDK 1.1 开始逐步替代 Date 类,其实本身就是一个日历,包含了日历中所有的时间

Calendar是一个抽象类,提供了可以获得 Calendar 对象的静态方法

  1. Calendar 类有构造方法,但是是由 protected 修饰的,通常无法访问到,所以要用方法来进行实例化,通常使用默认方法 getInstance() 来获取对象 ,用来构建一个系统当前时间的对象
  • add() - 推算时间点

    cal.add(Calendar.WEEK_OF_MONTH,1); //下一个周
    System.out.println(cal.getTime());

注:默认推算时间是往后推算,加上-可以往前推算

  • set() -设置时间点

    cal.set(Calendar.DAY_OF_WEEK,4); //跳转到本周的周四
    System.out.println(cal.getTime());
  • get() -获得时间点

cal.get(Calendar.MONTH) 月份从0开始

一周从周日开始

TimeZone 类

  1. 属于 java.util 包
  2. 可以通过 Calendar 实例对象 getTimeZone 方法来获取
  3. 常用方法

    1. tz.getID() 获取时区名
    2. tz.getDisplayName()

本文链接:

https://noahtung.xyz/index.php/archives/21/