作者:sprout--_557 | 来源:互联网 | 2023-10-13 09:23
简要: java Calendar 处理时间和日期,不仅仅性能差,且代码很冗余,建议用 Java 8 提供的新 API 。 Java 处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date 设定为可变类型,以及 SimpleDateFormat 的非线程安全使其应用非常受限。 示例1:Java 8 中获取今天的日期 Java 8 中的 LocalDate 用于表示当天日期。和 java.util.Date 不同,它只有日期,不包含时间
public class Demo01 { public static void main ( String [ ] args) { LocalDate today = LocalDate . now ( ) ; System . out. println ( "今天的日期:" + today) ; } }
| 示例 2:Java 8 中获取年、月、日信息
public class Demo02 { public static void main ( String [ ] args) { LocalDate today = LocalDate . now ( ) ; int year = today. getYear ( ) ; int month = today. getMonthValue ( ) ; int day = today. getDayOfMonth ( ) ; System . out. println ( "year:" + year) ; System . out. println ( "month:" + month) ; System . out. println ( "day:" + day) ; }
示例 3:在 Java 8 中获取当前的时间戳 Instant 类有一个静态工厂方法 now() 会返回当前的时间戳,如下所示: | 示例 4:Java 8 中如何使用预定义的格式化工具去解析或格式化日期 | 示例 5:字符串互转日期类型
LocalDateTime date = LocalDateTime.now();
DateTimeFormatter format1 = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); //日期转字符串 String str = date.format(format1); System.out.println("日期转换为字符串:"+str); DateTimeFormatter format2 = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); //字符串转日期 LocalDate date2 = LocalDate.parse(str,format2); System.out.println("日期类型:"+date2);
示例 6:如何用 Java 判断日期是早于还是晚于另一个日期 在 Java 8 中,LocalDate 类有两类方法 isBefore() 和 isAfter() 用于比较日期。调用 isBefore() 方法时,如果给定日期小于当前日期则返回 true。
LocalDate today = LocalDate . now ( ) ; LocalDate tomorrow = LocalDate . of ( 2018 , 2 , 6 ) ; if ( tomorrow. isAfter ( today) ) { System . out. println ( "之后的日期:" + tomorrow) ; } LocalDate yesterday = today. minus ( 1 , ChronoUnit . DAYS) ; if ( yesterday. isBefore ( today) ) { System . out. println ( "之前的日期:" + yesterday) ; }