Java1.8版本后对时间的处理常用的API
这里主要是一些可能会经常用到的方法说明,如果想看全部的,可以自行查看Java的API文档。
DateTimeFormatter
对时间进行格式化,与SimpleDateFormat相比,DateTimeFormatter是线程安全的
LocalDateTime of = LocalDateTime.of(2020, 12, 21, 12, 30, 59);
//输出为:2020-12-21T12:30:59
System.out.println(of);
//定义格式化规则
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
//对数据进行格式化,这也是将 LocalDateTime 转为String字符串的方法
String format = dateTimeFormatter.format(of);
System.out.println(format);//2020/12/21 12:30:59
LocalDateTime
LocalTime是LocalDate与LocalTime的结合。
/*
依次输入年、月、日、时、分、秒。如果任何字段的值超出范围,或者如果月的日期对于月份无效,
会报DateTimeException 异常
*/
LocalDateTime of = LocalDateTime.of(2020, 12, 21, 12, 30, 59);
//输出为:2020-12-21T12:30:59
System.out.println(of);
//将String字符串转化为LocalDateTime类型,使用静态的parse方法
//1、直接使用parse方法,这个时间字符串必须是yyyy-MM-ddTHH:mm:ss这种格式才可以,否则会报异常
LocalDateTime parse = LocalDateTime.parse("2020-12-02T12:30:20");
//2、使用parse的重载方法,
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
/*
这时就可以按照parse解析的字符串格式必须和dateTimeFormatter 定义的一致,当然我们可以更改规则,
同时也要更改parse要解析的String格式
可以根据String类型的格式,去定义DateTimeFormatter的规则
*/
LocalDateTime parse = LocalDateTime.parse("2020-12-02 12:30:20", dateTimeFormatter );
//接下来我们可以进行一系列操作
//获取 年
int year = of.getYear();
System.out.println(year);
//获取 月
int month = of.getMonthValue();
System.out.println(month);
//获取 月份的第几天
int day = of.getDayOfMonth();
System.out.println(day);
//一年中的第几天
int dayOfYear = of.getDayOfYear();
System.out.println(day);
//获取 时
int hour = of.getHour();
System.out.println(hour);
//获取 分
int minute = of.getMinute();
System.out.println(minute);
//获取 秒
int second = of.getSecond();
System.out.println(second);
当然关于时间的处理不止这些,还有许许多多的API,这里只是写了一些可能常用的