Date类
1.概念:Date类是我们常用的一个日期和时间的对象,此类在 java.util 包中,并不是java.sql中的Date
2.创建日期对象
Date date = new Date();
Date date = new Date(System.currentTimeMillis()); //获取当前时间转换为毫秒数
3.常用方法
date.getYear()+1900; //获取当前年份 必须加上1900
date.getMonth()+1; //获取当前月份 从0-11,所以必须加1
date.getDate(); //获取当前日,1-31
date.toString(); //转换为String
date.toGMTString(); //转换为GMT时区
date.toLocaleString(); //转换为本地时区
Calendar类
1.概念:日历类Calendar更多的是代表年 月 日 周 星期 上午 下午 夏时令等这样内容,Date用于记录某一个含日期的、精确到毫秒的时间。重点在代表一刹那的时间本身
2.创建
Calendar calendar = Calendar.getInstance();
3.常用方法
Date date = calendar.getTime(); //获取一个Date的实例
calendar.get(Calendar.YEAR); //获取当前的年份
calendar.get(Calendar.MONTH)+1; //获取当前的月份
calendar.get(Calendar.DAY_OF_MONTH); //获取日
calendar.get(Calendar.HOUR_OF_DAY); //获取时
calendar.get(Calendar.MINUTE); //获取分
calendar.get(Calendar.SECOND); //获取秒
SimpleDateFormat类
1.概念:格式化输出日期,此类提供了一些预定义字符串或者称之为占位符
yyyy:年 MM:月 dd: 日 HH: 小时 mm: 分钟 ss: 秒
2.创建
//获取当前时间
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
sdf.format(date); //将当前时间输出格式转换为yyyy年MM月dd日 HH:mm:ss
新增的日期时间类
1.LocalDate类-本地日期类
LocalDate d = LocalDate.now(); //当前日期
2.LocalTime类-本地时间类
LocalTime t = LocalTime.now(); //当前时间
3.LocalDateTime类-本地日期时间类
LocalDateTime dt = LocalDateTime.now();
-------------另一种写法(更规范)----------------
LocalDateTime dt = LocalDateTime.now(); //当前日期和时间
LocalDate d = dt.toLocalDate(); //转换到当前日期
LocalTime t = dt.toLocalTime(); //转换到当前时间
4.获取年月日时分秒的用法:
dt.getYear(); //年
dt.getMonth(); //月
dt.getDayOfMonth(); //一个月中的第几天
dt.getDayOfWeek(); //一周中的星期几
dt.getDayOfYear(); //一年的第几天
dt.getHour(); //小时
dt.getMinute(); //分钟
dt.getSecond(); //秒
5.根据指定的日期时间创建对象的用法
LocalDate date = LocalDate.of(2020,03,31); //2020-03-31
LocalTime time = LocalTime.of(16,57,50); //16:57:50
LocalDateTime datetime = LocalDateTime.of(2020,03,31,16,57,50)
LocalDateTime datetime2 = LocalDateTime.of(date,time);
6.根据标准格式创建对象的用法
ISO 8601规定的日期和时间格式:
日期:yyyy-MM-dd
时间:HH:mm:ss
带毫秒的时间:HH:mm:ss.SSS
日期和时间:yyyy-MM-dd'T'HH:mm:ss
带毫秒的日期和时间:yyyy-MM-dd'T'HH:mm:ss.SSS
LocalDateTime datetime = LocalDateTime.parse("2020-03-31T15:16:17")
LocalDate date = LocalDate.parse("2020-03-31");
LocalTime time = LocalTime.parse("15:16:17");
7.新增的日期时间格式化类 DateTimeFormatter类
①概念:如果要自定义输出的格式,或者要把一个非ISO 8601格式的字符串解析成LocalDateTime,可以使用新的DateTimeFormatter
②使用
//自定义格式化
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
dtf.format(LocalDateTime.now());
//用自定义格式解析
LocalDateTime dt2 = LocalDateTime.parse("2020/03/31 15:16:17",dtf);