一,Date日期类
第一代日期类Date
Date:精确到毫秒,代表特定的瞬间
Date:java.util.Date是用于表示一个日期和时间的对象,注意与java.sql.Date区分,后者用在数据库中。如果观察Date的源码,可以发现它实际上存储了一个long类型的以毫秒表示的时间戳。
public class Demo03 {
public static void main(String[] args) {
//日期在开发中常用来储存 生日,下单时间,付款时间,审批时间等
//类 Date 表示特定的瞬间,精确的毫秒
Date date1 = new Date(); //获取当前基于环境的时间
System.out.println(date1);
long time = date1.getTime();
System.out.println(time);
Date date2 = new Date(6000);
System.out.println(date2);
}
}
二,SimpleDateFormat
SampleDateFormat:格式和解析日期的类,允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化
SimpleDateFormat:对 Date 数据使用预定义的字符串进行格式转换。
yyyy:年 , MM:月 ,dd: 日 , HH: 小时 ,mm: 分钟 , ss: 秒。
public class Demo04 {
public static void main(String[] args) throws ParseException {
//SimpleDateFormat 用来实现 日期 和 字符串 之间的相互转换
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date1 = new Date();
//把 日期 转换成指定格式的 字符串
String format = sdf.format(date1);
System.out.println(format);
//把指定格式的 字符串 转换成 日期
String time = "2022/12/02 17:00:32";
Date date2 = sdf.parse(time);
System.out.println(date2);
}
}
三,calendar
第二代日期类Calendar:主要是 Calendar 类(日历),是一个抽象类,为特定瞬间与一组诸如YEAR、MONTH、DAY_OF-MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
public class Demo06 {
public static void main(String[] args) {
//Calendar 类是一个抽象类,可以通过Calendar 的 getInstance 的方法返回一个Calendar 对象
Calendar calendar = Calendar.getInstance();
Date date1 = calendar.getTime();//获取当前系统的时间
System.out.println(date1);
Long timeInMillis = calendar.getTimeInMillis();
System.out.println("当前的毫秒值:"+timeInMillis);
TimeZone timeZone = calendar.getTimeZone();
System.out.println("时区:"+timeZone);
//get方法可以根据 指定的日历字段 获取时间对应的值
int year = calendar.get(Calendar.YEAR);
System.out.println("年份:"+year);
int month = calendar.get(Calendar.MONTH);
System.out.println("月份:"+(month+1));//0-11表示 1-12月
int date = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("日期:"+date);
int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
System.out.println("本年的第:"+dayOfYear);
//可以获取 指定时间 月份0-11 表示1-12月
calendar.set(2003, 1, 27,11,07,32);
Date date2 = calendar.getTime();
System.out.println(date2);
}
}