一、Date类
1. 概述
Date类:表示特定的瞬间,精确到毫秒。
2.Date类的构造方法
2.1 public Date();
官方讲解:public Date():分配Date对象并初始化对象,以表示分配它的时间(精确到毫秒)
通俗的讲:public Date():分配Date对象并初始化对象,用来获取当前环境的时间,精确到毫秒。
public class Demo_01 {
public static void main(String[] args) {
Date date1 = new Date();
System.out.println(date1);
}
}
输出结果如下:
2.2public Date (long date);
官方讲解:public Date (long date):分配Date对象并初始化此对象,以表示自从标准基准时间。
通俗的讲:public Date (long date):分配Date对象并初始化此对象,date变量用来存储毫秒数,用来计算从1970年1月1日00:00:00 开始经过date毫秒后是什么时间。
public class Demo_01 {
public static void main(String[] args) {
Date date2 = new Date(215464654);
System.out.println(date2);
}
}
3 .Date类的常用方法
gettime():用来获取自 1970 年 1 月 1 日 00:00:00 GMT 开始到当前时间的毫秒数(时间戳)
public class Demo_01 {
public static void main(String[] args) {
Date date1 = new Date();
long time = date1.getTime();
System.out.println(time);
}
}
输出结果如下:
二、SimpleDateFormat类
1.概述
官方讲解:SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
通俗的说:SimpleDateForma类就是用来实现字符串和日期之间的相互转换。
2.日期和时间模式
字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y 年 Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800
3. SimpleDateFormat类中的常用方法
3.1 format():把日期转换成指定格式的字符串
public class Demo_02 {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = new Date();
String format = sdf.format(date1);
System.out.println(format);
}
}
3.2 parse():把指定格式的字符串转换成日期
补充:parse()方法不能直接使用,需要处理异常才能使用。
public class Demo_02 {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = "1998-09-21 8:20:38";
try {
Date date2 = sdf.parse(time);
System.out.println(date2);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
}
输出结果如下所示:
三、 Calendar类
1. 概述
官方讲解:Calendar 类是一个抽象类,它为特定瞬间。Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。
通俗的讲:Calendar 类是一个抽象类,可以通过Calendar 的getInstance() 方法返回一个Calendar对象。
2. 常用字段摘要
DATE 表示一个月中的某一天
DAY_OF_MONTH 表示一个月中的某一天
DAY_OF_WEEK 表示一个星期的某一天
DAY_OF_WEEK_IN_MONTH 表示当前月中的第几个星期
DAY_OF_YEAR 表示当前年的天数
AM 表示上午(午夜到中午之间的时间)
AM_PM 指定上午或下午(指示HOUR是在中午之前还是中午之后)
PM 表示下午(中午到午夜之间的时间)
HOUR 表示上午或下午的时间(结尾需要使用AM_PM来指示上午或下午的时间)
HOUR_OF_DAY 表示一天中的小时
MILLISECOND 表示一秒钟的毫秒
MINUTE 表示一小时中的分钟
MONTH 表示月份
SECOND 表示秒数
WEEK_OF_MONTH 表示当前月中的星期数
WEEK_OF_YEAR 表示当前年中的星期数
YEAR 表示年
3. Calendar类的常用方法
3.1 getTime();
getTime():用来获取当前系统的时间
public class Demo_03 {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
Date date1 = calendar.getTime();
System.out.println("当前时间为:"+date1);
}
}
3.2 get();
get()方法用来获取指定字段的值。
public class Demo_03 {
public static void main(String[] args) {
//get方法可以根据 指定的日历字段 获取时间对应的值
//calendar.get(Calendar.YEAR) 获取 年
int year = calendar.get(Calendar.YEAR);
System.out.println("年份:"+year);
//calendar.get(Calendar.MONTH) 获取 月份
int month = calendar.get(Calendar.MONTH);//从0开始 11结尾 所以月份得加1
System.out.println("月份:"+(month+1));
//calendar.get(Calendar.DAY_OF_MONTH); 获取在月份中的天数(日)
int date = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("一个月中的第:"+date+"天");
//calendar.get(Calendar.DAY_OF_YEAR); 获取在本年中的第几天
int day_of_Year = calendar.get(Calendar.DAY_OF_YEAR);
System.out.println("一年中的第:"+day_of_Year+"天");
}
}
3.3 set();
set()方法用来给某个字段赋值。
public class Demo_03 {
public static void main(String[] args) {
//可以获取 指定时间 月份0-11 表示 1-12月
// second:61 可以自动根据时间转换进一位
calendar.set(2000,9,28,15,46,61);
Date date2 = calendar.getTime();
System.out.println(date2);
}
}
3.4 getTimeInMillis();
getTimeInMillis()方法返回从历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)至现在所经过的毫秒数。
public class Demo_03 {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
long timeInMillis = calendar.getTimeInMillis();
System.out.println("当前时间的毫秒值:"+timeInMillis);
}
}
3.5 getTimeZone();
getTimeZone()方法用来获取时区。
public class Demo_03 {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
TimeZone timeZone = calendar.getTimeZone();
System.out.println("所在时区:"+timeZone);
}
}