日期API
1.Java.util.Date
构造器:
new Date() 获取当前系统时间
new Date(Long time) 设置时间
方法:
date.getTime() 获取1970-1-1凌晨距离date的毫秒数
System.currentTimeMillis() 时间搓
Date与String类型的相互转换
工具:SimpleDateFormat
构造器:
SimpleDateFormat() 默认格式21-5-15 上午9:26
SimpleDateFormat(String pattern)自己设置格式
” yyyy年MM月dd日 HH:mm:ss“
方法:
Date—>String
String format(Date date)
String—>Date
Date parse(String)
/**
* 第一代日期
*/
public class Test1 {
public static void main(String[] args) throws ParseException {
Date date = new Date();//获取当前时间
System.out.println(date);
long l = System.currentTimeMillis();
System.out.println("+"+l);//获取时间搓
long time = date.getTime();
System.out.println("="+time);
Date date1 = new Date(l);
System.out.println(date1);
/**
* date---->String
* 通过format方法
*/
SimpleDateFormat sim = new SimpleDateFormat();//date-->string 默认格式
String format = sim.format(l);//时间搓
System.out.println(format);
String format1 = sim.format(date);//当前时间
System.out.println(format1);
//自己设置输出时间格式 一个字母代替一个数字 y年M月d天 h(12小时制)H(24小时制)m分s秒
SimpleDateFormat sim2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format2 = sim2.format(l);
System.out.println(format2);
String format3 = sim2.format(date);
System.out.println(format3);
/**
* string--->date
* 通过parse(方法)
*/
SimpleDateFormat sim3 = new SimpleDateFormat();
Date parse = sim3.parse(format1);
System.out.println(parse);
}
}
2.日历类(abstract类型)
获取日历类对象(通过方法获得对象)
Calendar.getInstance();
方法:
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.MONTH));
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println(c.get(Calendar.HOUR_OF_DAY));
System.out.println(c.get(Calendar.MINUTE));
System.out.println(c.get(Calendar.SECOND));
set(int field,int value)
c.set(Calendar.SECOND,30);
set(int year,int month,int day,int hour...)
/**
* 第二代日期
* Calendar
*/
public class Test1 {
public static void main(String[] args) {
Calendar c = Calendar.getInstance(); // abstract抽象方法 ,不能实例化对象,只能调用方法实现对象
System.out.println(c);
//Calendar因为是抽象方法 所以它把值都设置为静态常量
//下面连个方法相同
System.out.println(c.get(1));
System.out.println(c.get(Calendar.YEAR));//Calendar.YEAR==1 也可以直接输入1
//赋值
c.set(1,2019);
System.out.println(c.get(1));
}
}
3.jdk1.8新特性
LocalDate、LocalTime、LocalDateTime //时分秒;年月日;全部时间
①日期对象的创建( final 修饰的 不能被继承)
LocalDate、LocalTime、LocalDateTime.now()
LocalDate、LocalTime、LocalDateTime.of(xxx,xxx,xxx...)
方法:
System.out.println(date.getYear());
System.out.println(date.getMonthValue());
System.out.println(date.getDayOfMonth());
System.out.println(date.getHour());
System.out.println(date.getMinute());
System.out.println(date.getSecond());
修改:
plusXXX(int) 增加
minusXXX(int) 减少
注意:修改完成后不会对原对象产生影响,返回新的结果
String 和 JDK1.8日期的转换
工具类:DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
LocalDateTime/LocalDate/LocalTime-->String
String format(LocalDateTime/LocalDate/LocalTime)
String-->LocalDateTime/LocalDate/LocalTime
LocalDateTime/LocalDate/LocalTime.parse(String str,DateTimeFormatter dtf)
/**
* 第三代时间 1.8新特性
* LocalDate、LocalTime、LocalDateTime
*/
public class Test1 {
public static void main(String[] args) {
//创建对象
LocalDateTime now = LocalDateTime.now(); //所有时间
LocalDate now1 = LocalDate.now();//年月日--->也只能调用对应的方法
LocalTime now2 = LocalTime.now();//时分秒
//方法:
System.out.println(now.getYear());
System.out.println(now.getDayOfYear());//今天距离年初相差多少天
System.out.println(now.getHour());
//.....
//修改时间 plus-->加多少年 对原对象没有影响
LocalDateTime localDateTime = now.plusYears(3);
System.out.println(localDateTime);
LocalDateTime localDateTime1 = now.plusMonths(1);
System.out.println(localDateTime1);
//minus 减少
LocalDateTime localDateTime2 = localDateTime.minusYears(3);
System.out.println(localDateTime2);
//工具类 DateTimeFormatter
//LocalDateTime/LocalDate/LocalTime-->String
DateTimeFormatter date = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
// DateTimeFormatter date = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
String format = date.format(now);
// String format = date.format(now1);
System.out.println(format);
// String-->LocalDateTime/LocalDate/LocalTime
LocalDateTime parse = localDateTime.parse(format,date);
System.out.println(parse);
}
}