由于各种原因,java里Date类的使用已经过时,而且获取的时间日期不准确。
package com.situ.chapter1;
import java.util.Date;
public class Test3 {
public static void main(String[] args) {
Date d =new Date();//创建一个date对象
System.out.println(d.getDate());
System.out.println(d.getDay());
System.out.println(d.getHours());
System.out.println(d.getMinutes());
System.out.println(d.getYear());
}
}
运行截图:
这里明显获取的日期不正确
那么怎样正确获取日期时间呢?
使用Calendar、LocalDate、LocalTime、LocalDateTime
日历类,从1970年一月一日开始计算的时间日期,即计算机诞生开始计算。
package com.situ.chapter1;
import java.util.Calendar;
import java.util.Date;
public class Test1 {
public static void main(String[] args) {
Date d = new Date();
Calendar can = Calendar.getInstance();//创建日历对象
System.out.println(can.get(Calendar.YEAR));
System.out.println(can.get(Calendar.MONTH)+1);//月份0-11,所以需要加1
System.out.println(can.get(Calendar.DAY_OF_MONTH));
System.out.println(can.get(Calendar.DAY_OF_WEEK));
System.out.println(can.get(Calendar.HOUR));
System.out.println(can.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println(can.get(Calendar.MINUTE));
System.out.println(can.get(Calendar.SECOND));
System.out.println(can.get(Calendar.MILLISECOND));
can.setTime(d);//将一个Date实例的状态设置到Calendar中,这样就可以使用Date来查询时间日期了
Date d1 = can.getTime();
System.out.println(d1);
}
}
运行截图:
LocalDate、LocalTime、LocalDatetime以当前所在地区的时区为准,获取时间日期
package com.situ.chapter1;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
public class Test2 {
public static void main(String[] args) {
//本地时期类,与时区无关
LocalDate ld = LocalDate.of(2021, 11, 1);
//只读,不可修改
System.out.println(ld);
System.out.println(ld.getYear());
System.out.println(ld.getMonthValue());
System.out.println(ld.getMonth());//返回月份对象
System.out.println(ld.getDayOfWeek());
System.out.println(ld.getDayOfMonth());
System.out.println(ld.getDayOfYear());
LocalTime lt = LocalTime.now();
System.out.println(lt.getHour());
System.out.println(lt.getMinute());
System.out.println(lt.getSecond());
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt.getHour());
}
}
运行截图:



