java8引入了一套全新的时间日期API
一、LocalDate类:LocalDate是一个不可变的日期时间对象,表示日期,通常被视为年月日。 也可以访问其他日期字段,例如日期,星期几和星期。 例如,值“2007年10月2日”可存储在LocalDate 。
方法:
1、获取当前的年月日 public static void now();
LocalDate Time = LocalDate.now();
System.out.println(Time);
2、输出指定的年月日:
a) public static LocalDate of(int year,int month,int dayOfMonth);
b) public static LocalDate of(int year,Month month,int dayOfMonth);
Test:System.out.println(LocalDate.of(2018, 5, 20));//输出2018-05-20
3、单独输出当前的年月日
System.out.println("当前的年份是:"+LocalDate.now().getYear()); //2017
System.out.println("当前的月份是:"+LocalDate.now().getMonthValue());//6
System.out.println("当前的日期是:"+LocalDate.now().getDayOfMonth());//13
4、输出以前或者未来的日期
System.out.println("五天后:" + LocalDate.now().plusDays(5));
System.out.println("五周后:" + LocalDate.now().plusWeeks(5));
System.out.println("五月后:" + LocalDate.now().plusMonths(5));
System.out.println("五年后:" + LocalDate.now().plusYears(5));
二、MonthDay类:MonthDay是一个不变的日期时间对象,代表一年和一个月的组合。 可以获得可以从月和日派生的任何字段,例如四分之一年份。
该类不存储或代表一年,一个或多个时区。 例如,值“12月3日”可以存储在MonthDay 。
由于MonthDay没有一年,所以2月29日的闰天被认为是有效的。
需求:判断今天是不是你的生日?
//第一步:录入自己的生日信息。
LocalDate birthday = LocalDate.of (1994,6,8);
//第二步:录入当前日期
MonthDay at = MonthDay.now();
//把生日信息转换成只保留月份和日期
MonthDay up = MonthDay.from(birthday);
if(up.equals(at)){
System.out.println("今天是你的生日!");
}else{
System.out.println("今天不是你的生日!");
}
三、LocalDateTime类:LocalDateTime是一个不可变的日期时间对象,代表日期时间,通常被视为年 - 月 - 日 - 时 - 分 - 秒。 也可以访问其他日期和时间字段,例如日期,星期几和星期。 时间表示为纳秒精度。 例如,值“2007年10月2日在13:45.30.123456789”可以存储在LocalDateTime 。
//获取当前的年-月-日-小时-分钟-秒-纳秒
System.out.println(LocalDateTime.now());
控制台输出当前系统时间
//输出指定的年-月-日-小时-分钟-秒
System.out.println(LocalDateTime.of(2020,10,8,18,56,32));
控制台输出2020-10-08T18:56:32
四、LocalTime类:LocalTime是一个不可变的日期时间对象,代表一个时间,通常被看作是小时 - 秒。 时间表示为纳秒精度。 例如,值“13:45.30.123456789”可以存储在LocalTime 。
它不存储或表示日期或时区。 相反,它是在挂钟上看到的当地时间的描述。 它不能代表时间线上的即时信息,而没有附加信息,如偏移或时区。
五、SimpleDateFormat类DeatFormat的子类,支持--自定义格式模式。
自定义格式严格遵循规范:y 表示年,M表示月,d表示日,H表示时,m表示分,s表示秒,E表示星期
//自动以格式化结构
String petter = "y年M月d日 H:m:s E";
//创建对象并把结构赋给该对象。
SimpleDateFormat time = new SimpleDateFormat(petter);
// time.applyPattern(petter); 可以在构造方法定义模式,也可以用applyPattern(String MOSHI)来申请一个模式。
//利用format进行格式转换成字符串。
String times = time.format(new Date());
//输出
System.out.println(times);
//解析,按照什么风格格式化的,就按照什么什么风格格式回去
Date a = time.parse(times);
System.out.println(a);
控制台输出:
2017年6月13日 16:2:28 星期二
Tue Jun 13 16:02:28 CST 2017