网站改版的原因,内江市规划建设教育培训 网站,西安百度公司电话,公众号运营外包知道怎么查#xff0c;怎么用即可#xff0c;不用每个方法都背 日期类 第一代日期类方法演示 第二代日期类方法演示 第三代日期类前面两代日期类的不足分析第三代日期类常见方法方法演示 第一代日期类
Date类#xff1a;精确到毫秒#xff0c;代表特定的瞬间SimpleDateFor… 知道怎么查怎么用即可不用每个方法都背 日期类 第一代日期类方法演示 第二代日期类方法演示 第三代日期类前面两代日期类的不足分析第三代日期类常见方法方法演示 第一代日期类
Date类精确到毫秒代表特定的瞬间SimpleDateFormat类格式和解析日期的类 SimpleDateFormat 格式化和解析日期的具体类。它允许进行格式化日期-文本、解析文本-日期和规范化。 这里说明一下 IDEA 中绘制类图diagram的时候的 properties。fields表示属性properties表示使用了 setXXX getYYY 方法的名词那么properties就是XXX YYY注意这里的XXX YYY不一定是属性。 方法演示
新建 ① 获取当前系统时间 ② 这里的Date 类是在java.util包。import java.util.Date; ③ 默认输出的日期格式是国外的方式, 因此通常需要对格式进行转换
Date d1 new Date(); //获取当前系统时间
System.out.println(当前日期 d1);Date d2 new Date(9234567); //通过指定毫秒数得到时间
System.out.println(d2 d2); //获取某个时间对应的毫秒数格式化 ① 创建 SimpleDateFormat对象可以指定相应的格式 ② 这里的格式使用的字母是规定好不能乱写
SimpleDateFormat sdf new SimpleDateFormat(yyyy年MM月dd日 hh:mm:ss E);
Stringformat sdf.format(d1); // format:将日期转换成指定格式的字符串
System.out.println(当前日期 format);String - Date ① 可以把一个格式化的String 转成对应的 Date ② 得到Date 仍然在输出时还是按照国外的形式如果希望指定格式输出需要转换 ③ 在把String - Date使用的 sdf 格式需要和你给的String的格式一样否则会抛出转换异常
//这里使用 throws
public static void main(String[] args) throws ParseException {SimpleDateFormat sdf new SimpleDateFormat(yyyy年MM月dd日 hh:mm:ss E);String s 1996年01月01日 10:20:30 星期一;Date parse sdf.parse(s);System.out.println(parse sdf.format(parse));
}第二代日期类
第二代日期类主要就是 Calendar类(日历)。Calendar类是一个抽象类它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法并为操作日历字段例如获得下星期的日期) 提供了一些方法。import java.util.Calendar;
方法演示
① Calendar是一个抽象类 并且构造器是private ② 可以通过 getInstance() 来获取实例 ③ 提供大量的方法和字段提供给程序员 ④ Calendar没有提供对应的格式化的类因此需要程序员自己组合来输出(灵活) ⑤ 如果我们需要按照 24小时进制来获取时间 Calendar.HOUR 改成 Calendar.HOUR_OF_DAY
Calendar c Calendar.getInstance(); //创建日历类对象//比较简单自由
System.out.println(c c);获取日历对象的某个日历字段 Calendar 返回月时候是按照 0 开始编号 System.out.println(年 c.get(Calendar.YEAR));
System.out.println(月 (c.get(Calendar.MONTH) 1));Calender 没有专门的格式化方法所以需要程序员自己来组合显示 System.out.println(日 c.get(Calendar.DAY_OF_MONTH));
System.out.println(小时 c.get(Calendar.HOUR));
System.out.println(分钟 c.get(Calendar.MINUTE));
System.out.println(秒 c.get(Calendar.SECOND));System.out.println(c.get(Calendar.YEAR) - (c.get(Calendar.MONTH) 1) - c.get(Calendar.DAY_OF_MONTH) c.get(Calendar.HOUR_OF_DAY) : c.get(Calendar.MINUTE) : c.get(Calendar.SECOND) );第三代日期类
前面两代日期类的不足分析
JDK 1.0 中包含了一个 java.util.Date 类但是它的大多数方法已经在JDK 1.1引入Calendar类之后被弃用了。 而 Calendar 也存在问题是: ① 可变性像日期和时间这样的类应该是不可变的。 ② 偏移性Date中的年份是从1900开始的而月份都从0开始。 ③ 格式化格式化只对Date有用Calendar则不行。 ④ 此外它们也不是线程安全的不能处理闰秒等(每隔2天,多出15)。
第三代日期类常见方法
LocalDate日期 /年月日、LocalTime时间 /时分秒、LocalDateTime日期时间 /年月日时分秒——JDK8才加入 ① LocalDate只包含日期可以获取日期字段 ② LocalTime只包含时间可以获取时间字段 ③ LocalDateTime包含日期时间可以获取日期和时间字段 ④ Instant时间戳类似于Date提供了一系列和Date类转换的方式 Instant — Date: Date date Date.from(instant); Date — Instant: Instant instant date.toInstant(); ⑤ 第三代日期类 LocalDateTime 更多方法 -MonthDay类检查重复事件是否是闰年 -增加日期的某个部分 -使用plus方法测试增加时间的某个部分 -使用minus方法测试查著一年前和一年后的日期
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Instant 只有一个构造器 private LocalDateTime(LocalDate date, LocalTime time)
方法演示
使用DateTimeFormatter格式化要在 jdk8 之后找因为 jdk8 才引入
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;public static void main(String[] args) {//第三代日期//1. 使用now() 返回表示当前日期时间的 对象LocalDateTime ldt LocalDateTime.now(); //LocalDate.now();//LocalTime.now()System.out.println(使用LocalDateTime);System.out.println(ldt);System.out.println(年 ldt.getYear());System.out.println(月 ldt.getMonth());//得到月份的英文 比如MARCHSystem.out.println(月 ldt.getMonthValue());//得到月份的数字比如3System.out.println(日 ldt.getDayOfMonth());System.out.println(时 ldt.getHour());System.out.println(分 ldt.getMinute());System.out.println(秒 ldt.getSecond());System.out.println(使用LocalDate);LocalDate now LocalDate.now(); //可以获取年月日System.out.println(now.getDayOfYear(),now.getMonthValue(),now.getDayOfMonth());System.out.println(使用LocalTime);LocalTime now2 LocalTime.now();//获取到时分秒System.out.println(now2.getHour(),now2.getMinute(),now2.getSecond());System.out.println(使用DateTimeFormatter格式化);//2. 使用DateTimeFormatter 对象来进行格式化// 创建 DateTimeFormatter对象DateTimeFormatter dateTimeFormatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss);String format dateTimeFormatter.format(ldt);System.out.println(格式化的日期 format);System.out.println(plus和minus方法);//提供 plus 和 minus方法可以对当前时间进行加或者减//看看890天后是什么时候 把 年月日时分秒LocalDateTime localDateTime ldt.plusDays(890);System.out.println(890天后 dateTimeFormatter.format(localDateTime));//看看在 3456分钟前是什么时候把 年月日-时分秒输出LocalDateTime localDateTime2 ldt.minusMinutes(3456);System.out.println(3456分钟前 日期 dateTimeFormatter.format(localDateTime2));}时间戳演示
public static void main(String[] args) {//1.通过 静态方法 now() 获取表示当前时间戳的对象Instant now Instant.now();System.out.println(now);//2. 通过 from 可以把 Instant转成 DateDate date Date.from(now);//3. 通过 date的toInstant() 可以把 date 转成Instant对象Instant instant date.toInstant();
}