使用 Date
类
使用 Calendar
类
// 1 使用Date类
Date date = new Date();
System.out.println(date.toString());
// Fri Sep 13 21:47:38 CST 2019
// 2 使用Calendar类
Calendar c = Calendar.getInstance();
System.out.println(c.getTime());
// Fri Sep 13 21:53:45 CST 2019
// 1 使用Calendar指定日期
Calendar c = Calendar.getInstance();
c.set(2019, 9, 11); // 0代表一月份
System.out.println(c.getTime());
// Fri Oct 11 21:53:45 CST 2019
// 2 日期比较,使用Date生成日期并比较
boolean before = new Date(2019, 9, 11).before(new Date(2019, 9, 8));
System.out.println(before);
// false
使用 SimpleDateFormat
// yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。
// HH 是 24 小时制,而 hh 是 12 小时制。
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formatDate = dateFormat.format(date);
String formatDate1 = dateFormat1.format(date);
System.out.println(formatDate);
// 2019-09-13 09:56:48
System.out.println(formatDate1);
// 2019-09-13 21:58:24
%t
之后用 y
表示输出日期的年份(2位数的年,如99)
%t
之后用 m
表示输出日期的月份,%t
之后用 d
表示输出日期的日号
%t
之后用 Y
表示输出日期的年份(4位数的年)
%t
之后用 B
表示输出日期的月份的完整名,%t
之后用 b
表示输出日期的月份的简称
Date date = new Date();
// getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
long dataL = date.getTime();
// 格式化年月日
// %t之后用y表示输出日期的年份(2位数的年,如99)
// %t之后用m表示输出日期的月份,%t之后用d表示输出日期的日号
System.out.printf("%1$ty-%1$tm-%1$td; %2$ty-%2$tm-%2$td%n", date, dataL);
// 19-09-13; 19-09-13
// %t之后用Y表示输出日期的年份(4位数的年),
// %t之后用B表示输出日期的月份的完整名, %t之后用b表示输出日期的月份的简称
System.out.printf("%1$tY-%1$tB-%1$td; %2$tY-%2$tb-%2$td%n", date, dataL);
// 2019-九月-13; 2019-九月-13
// c的使用
System.out.printf("全部日期和时间信息:%tc%n", date);
// 全部日期和时间信息:星期五 九月 13 22:04:55 CST 2019
// f的使用
System.out.printf("年-月-日格式:%tF%n", date);
// 年-月-日 格式:2019-09-13
// d的使用
System.out.printf("月/日/年格式:%tD%n", date);
// 月/日/年 格式:09/13/19
// r的使用
System.out.printf("HH:MM:SS PM格式(12时制):%tr%n", date);
// HH:MM:SS PM格式(12时制):10:04:55 下午
// t的使用
System.out.printf("HH:MM:SS格式(24时制):%tT%n", date);
// HH:MM:SS 格式(24时制):22:04:55
// R的使用
System.out.printf("HH:MM格式(24时制):%tR", date);
// HH:MM 格式(24时制):22:04
// 1 时间字符串
String testDate = "2019-11-11 09:23:34";
// 2 解析格式
SimpleDateFormat parseFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
// 3 解析
Date parse = parseFormat.parse(testDate);
// 4 输出
System.out.println(parse);
// Mon Nov 11 09:23:34 CST 2019
} catch (ParseException e) {
e.printStackTrace();
}
// 1 指定两个日期时间
Date date1 = new Date(2019, 11, 11, 9, 12, 34);
Date date2 = new Date(2019, 12, 12, 10, 23, 23);
// 2 计算时间间隔,ms为单位
long interval = Math.abs(date1.getTime() - date2.getTime());
System.out.println(interval + " ms");
// 2769049000 ms
// 3 转换为s为单位
long seconds = interval / 1000;
System.out.println(seconds / 3600 + "hour "
+ seconds % 3600 / 60 + "minute "
+ seconds % 3600 % 60 + "seconds");
// 769hour 10minute 49seconds