1. Date
java.util.Date
public class Date extends Object implements Serializable, Cloneable, Comparable<Date>
类 Date 表示特定的瞬间,精确到毫秒。
1s = 1000 ms
Date类构造方法
Date()
分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 获取当前日期和时间。
Date(long date)
分配 Date 对象并初始化此对象,
以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
方法
long getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
public static void main(String[] args) {
//System.out.println(System.currentTimeMillis()); //获取的当前时间到1970-01-01 00:00:00 经历了多少毫秒
Date date = new Date();
System.out.println(date);//Fri Apr 03 16:13:19 CST 2020 得到 返回当前时间
System.out.println(date.getTime());//1585901599699
Date date1 = new Date(0L);
System.out.println(date1);//Thu Jan 01 08:00:00 CST 1970
Date date2 = new Date(1000L);
System.out.println(date2);//Thu Jan 01 08:00:01 CST 1970
}
2.DateFormat
public abstract class DateFormat extends Format
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。
将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年 1 月 1 日 00:00:00 这一刻开始的毫秒数。
包含方法:
String format(Date date)
将一个 Date 格式化为日期/时间字符串。 Date --> String
Date parse(String source)
从给定字符串的开始解析文本,以生成一个日期。 String --> Date
java.text.SimpleDateFormat
public class SimpleDateFormat extends DateFormat
构造方法:
SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。
参数:
String pattern 传递指定模式
y年 M月 d日 H时 m分 s秒
“yyyy-MM-dd HH:mm:ss”
模式中的字母不可以改变 字母可以改变
private static void show01() {
Format format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = format.format(new Date());
System.out.println(str); //2020-04-03 16:22:36
}
private static void show02() throws ParseException {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = format.parse("2014-02-23 12:12:12");
System.out.println(parse); //Sun Feb 23 12:12:12 CST 2014
}
注意: 使用parse方法时,需要抛出ParseException异常
3.Calendar
public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable<Calendar>
Calendar 类是一个抽象类,
它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,
并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,
它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为 protected。
与其他语言环境敏感类一样,Calendar 提供了一个类方法 getInstance, 以获得此类型的一个通用的对象。
Calendar 的 getInstance 方法返回一个 Calendar 对象,
其日历字段已由当前日期和时间初始化:
Calendar rightNow = Calendar.getInstance();
常用方法:
/* int get(int field)
返回给定日历字段的值。*/
private static void show01(Calendar calendar) {
int year = calendar.get(Calendar.YEAR);
System.out.println(year);
int month = calendar.get(Calendar.MONTH);
System.out.println(month); //需要+1
int day = calendar.get(Calendar.DATE);
System.out.println(day);
}
/* void set(int field, int value)
将给定的日历字段设置为给定值。*/
private static void show02() {
Calendar calendar = Calendar.getInstance();
//设置年
calendar.set(Calendar.YEAR,2020);
//设置月
calendar.set(Calendar.MONTH,4);
//设置日
calendar.set(Calendar.DATE,3);
calendar.set(2020,4,3);
show01(calendar);
}
/*
abstract void add(int field, int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
参数:
int field: 日历类的字段,可以使用Calendar类的静态成员变量获取
int amount: 增加/减少指定的值 正数增加 负数 减少
*/
private static void show03() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR,0);
calendar.add(Calendar.MONTH,9);
calendar.add(Calendar.DATE,-1);
show01(calendar);
}
/*
Date getTime()
返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
把日历转换成日期类
*/
private static void show04() {
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
System.out.println(date);
}
成员方法中的参数:
int field: 日历类的字段,可以使用Calendar类的静态成员变量获取
public final static int YEAR = 1; 年
public final static int MONTH = 2;月
public final static int DATE = 5; 月中的某一天
public final static int DAY_OF_MONTH = 5; 月中的某一天
public final static int HOUR = 10; 时
public final static int MINUTE = 12; 分
public final static int SECOND = 13; 秒