Java Date类 ,Calendar类 与 SimpleDateFormat类
Date类
- Date表示特定的瞬间,精确到毫秒。Date类中的大部分方法都已经被Calendar类中的方法所取代
- 时间单位
- 1秒 = 1000毫秒
- 1毫秒 = 1000 微秒
- 1微秒 = 1000 纳秒(毫微秒)
位置:java.util 包下
创建:Date date = new Date()
方法
- getTime() 返回自1970年1月1日00:00:00 GMT 以来此 Date 对象表示的毫秒数
- after() 是否在这个时间之后
- before() 是否在这个时间之前
- compareTo() 比较 返回int值
- equals() 返回boolean值
- setTime() 修改时间 参数是一个毫秒值 从1970年开始
Calendar类
- Calendar 提供了获取或设置各种日历字段的方法
- Calendar类的构造方法
- protected Calendar() : 由于修饰符是protected,所以无法直接创建该对象
- 其他方法
- static Calendar getInstance() 使用默认时区和区域获取日历
- void set(int year, int month, int date, int hourofday, int minute, int second) 设置日历的年,月,日,时,分,秒
- calendar1.set(Calendar.DAY_OF_MONTH,18); 修改时间,field(字段)
- int get(int field) 返回给定日历字段的值,字段比如年,月,日等
- int year = calendar.get(Calendar.YEAR); 获取Calendar.YEAR字段 当前年
- void setTime(Date date) 用给定的Date设置此日历的时间。Date-Calendar
- Date getTime() 返回一个Date表示此日历的时间。Calendar-Date
- void add(int field, int amount) 按照日历的规则,给指定字段添加或减少时间量
- calendar.add(Calendar.HOUR,1); 增加一个小时,负数为减少
- long getTimeInMillies() 毫秒为单位返回该日历的时间值 从1970年开始
- getActualMaximum(field) 获取当前字段的最大值
- getActualMinimum(field) 获取当前字段的最小值
创建:Calendar calendar = Calendar.getInstance() 通过getInstance()静态方法获取
SimpleDateFormat类
- SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类
- 进行格式化(日期 - > 文本)、解析(文本 - > 日期)
- 常用的时间模式字母
- y 年
- M 年中月份
- d 月中天数
- H 1天中小时数(0-23)
- m 分钟
- s 秒
- S 毫秒
创建:SimpleDateFormat sdf = new SimpleDateFormat(“yyyy/MM/dd HH:mm:ss”); 参数为格式
方法
- sdf.format() 格式化日期
- sdf.parse() 把字符串转为日期格式,如果格式为定义的格式则输出,如果不为,则抛出异常
package com.lei.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* SimpleDateFormat类
*/
public class Demo3 {
public static void main(String[] args) throws ParseException {
// 创建SimpleDateFormat对象 y年M月
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
// 创建Date对象
Date date = new Date();
// 格式化date
String str = sdf.format(date);
System.out.println(str);
// 解析(把字符串转换成日期)
Date date1 = sdf.parse("2020/01/12 09:10:2");
System.out.println(date1);
}
}
ate1 = sdf.parse(“2020/01/12 09:10:2”);
System.out.println(date1);
}
}