//Date 日期的使用 util.Date
Date date = new Date();//创建当前时间的数据库
System.out.println(date.toString());//Sun Apr 10 21:17:17 CST 2022
System.out.println(date.getTime());//1649596547068
System.out.println(date);//Sun Apr 10 21:22:56 CST 2022
/* toString();显示当前时间的 年 月 日 时 分 秒
getTime(); 获取当前Date对象对应时间的毫秒值
* */
Date date1 = new Date(225255464646L);
System.out.println(date1.toString());//Sun Feb 20 10:57:44 CST 1977
System.out.println(date1.getTime());
// java.sql.Date 数据库的时间
//实例化对象
java.sql.Date date2 = new java.sql.Date(4686548797646L);
System.out.println(date2.toString());//2118-07-06
System.out.println(date2);//2118-07-06
//将 Java.util.Date 转换为 java.sql.Date
Date date3 = new Date();
java.sql.Date date4 = new java.sql.Date(date3.getTime());
System.out.println(date4);//2022-04-10
SimpleDateFormat 使用
// SimpleDateFormat 使用
SimpleDateFormat sdf = new SimpleDateFormat();
Date date = new Date();
String str = sdf.format(date);
System.out.println(str);
//格式化日期,解析出的日期就是对应的格式
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy:MM:dd hh:mm:ss");
String str2 = sdf2.format(date);//解析日期格式
System.out.println(str2);//2022:04:11 05:53:56
//解析: 只识别构造器创建的格式
Date date1 = sdf2.parse("2022:04:11 05:53:56");
System.out.println(date1);
long time = System.currentTimeMillis(); //当前时间戳
举个栗子:
//练习"2020-2-11" 转换为 java.sql.Date
@Test
public void testSimpleDateFormate() throws ParseException {
String str = "2020-2-11";
//创建对应格式 时间格式对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(str);
java.sql.Date date1 = new java.sql.Date(date.getTime());
System.out.println(date1);
}
日历类Calendar使用:
@Test
public void testCalendar(){
//日历类的使用: 抽象类
Calendar calendar = Calendar.getInstance();
//常用方法
//get()
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(day);
//set()
calendar.set(Calendar.DAY_OF_MONTH, 22);
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//修改了当月第几天
//add()
calendar.add(Calendar.DAY_OF_MONTH, 3);
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
//getTime()
System.out.println(calendar.getTime());//日期变为设置后的日期
//setTime() 将Date 时间----》 日历类时间
Date date = new Date();
calendar.setTime(date);
System.out.println(calendar.getTime());
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
}
Jdk8 时间日期类LacalTime LocalDate LocalDateTime
public void testTime(){
//LocalTime LocalDate LocalDateTime
//LoacalDateTime 相对使用频率更高
//now()
LocalDateTime ldt = LocalDateTime.now();
LocalDate ld = LocalDate.now();
LocalTime lt = LocalTime.now();
System.out.println(ldt);//2022-04-11T07:00:40.976
System.out.println(ld);//2022-04-11
System.out.println(lt);//07:00:40.977
//of() 设定指定年 月 日 时 分 秒 没有偏移量
LocalDateTime localDateTime = LocalDateTime.of(2020, 4, 11, 7, 6);
System.out.println(localDateTime);
//getXXX()
System.out.println(localDateTime.getDayOfMonth());
System.out.println(localDateTime.getDayOfWeek());
System.out.println(localDateTime.getMinute());
System.out.println(localDateTime.getHour());
//设置 withXXX()
LocalDateTime localDateTime1 = localDateTime.withDayOfMonth(23);
System.out.println(localDateTime);//2020-04-11T07:06 原本的日期没有改变,表现不可变性
System.out.println(localDateTime1);//2020-04-23T07:06
//添加时间 plusXXX()
LocalDateTime localDateTime2 = localDateTime.plusDays(12);
System.out.println(localDateTime);//2020-04-11T07:06 原本的日期没有改变,表现不可变性
//减去时间 minusXXX()
LocalDateTime localDateTime3 = localDateTime.minusDays(4);
System.out.println(localDateTime);//2020-04-11T07:06
System.out.println(localDateTime3);//2020-04-07T07:06
}
瞬时Instant 使用
@Test
public void testInstant(){
//瞬时类Instant使用
//获取本初子午线时间
Instant instant = Instant.now();
System.out.println(instant);//2022-04-10T23:26:19.389Z
//添加时区偏移量
OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8));
System.out.println(offsetDateTime);//2022-04-11T07:26:19.389+08:00
//获取从1970.1.1 0:0:0 的毫秒值
long time = instant.toEpochMilli();
System.out.println(time);//1649633347658
//通过给定的毫秒数,获取对应的Instant的实例
Instant instant1 = Instant.ofEpochMilli(1649633347658L);
System.out.println(instant1);//2022-04-10T23:29:07.658Z
}
TimeDateFormatter 自定义时间格式
@Test
public void testDateTimeFormatter(){
//foPatten("yyyy- MM - dd hh:mm:ss") 自定义格式
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy - MM - dd hh:mm:ss");
//解析当前时间
String str = dateTimeFormatter.format(LocalDateTime.now());
System.out.println(str);//打印出的自定义格式的时间格式
}