Date
- Date表示特定的瞬间,精确到毫秒。Date类中的大部分方法都已经被Canlendar类中的方法所取代
- 时间单位
- 1秒=1000毫秒
- 1毫秒=1000微秒
- 1微秒=1000纳秒
Canlendar
- Canlendar提供了获取或设置各种日历字段的方法
- 构造方法
- protected Canlendar():由于修饰符是protected,所以无法直接创建对象
- 其他方法

package commonclass.dateclass;
import java.util.Calendar;
import java.util.Date;
public class Demo01 {
public static void main(String[] args) {
//创建Calendar对象,由于是protected,所以使用自带的方法getInstance()进行实例化
Calendar calendar = Calendar.getInstance();
//获取年
int year = calendar.get(Calendar.YEAR);
//获取月0-11,0代表1月,11代表12月,一般加1代表当前月份
int month = calendar.get(Calendar.MONTH);
//获取日
int day = calendar.get(Calendar.DAY_OF_MONTH);
//获取时
int hour = calendar.get(Calendar.HOUR_OF_DAY);//hour12小时,houro_of_day24小时
//获取分
int minute = calendar.get(Calendar.MINUTE);
//获取秒
int second = calendar.get(Calendar.SECOND);
System.out.println("当前时间为:"+year+"年"+(month+1)+"月"+day+"日"+hour+"时"+minute+"分"+second+"秒");
//修改时间
Calendar calendar1 = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH,5);
System.out.println(calendar1.getTime().toLocaleString());
}
}
SimpleDateFormat
- SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类
- 进行格式化(日期 ---> 文本 )、解析(文本 ---> 日期)
- 常用的时间模式字母

package commonclass.dateclass;
import jdk.management.resource.internal.inst.SocketOutputStreamRMHooks;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo02 {
public static void main(String[] args) throws Exception{
//1. 创建SimpleDateFormat对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(sdf);//输出:java.text.SimpleDateFormat@129110e0
//2.创建Date
Date date = new Date();
//把日期转成字符串:格式化Date,使用format方法
String str = sdf.format(date);
System.out.println(str);//输出:2021/10/12 10:57:10
//把字符串转换成日期:使用parse方法
Date date1 = sdf.parse("2021/10/12 10:53:19");//需要转换的字符串格式必须和sdf一致,即实例化时定义的时间格式
System.out.println(date1);//输出:Tue Oct 12 10:53:19 CST 2021
}
}