Java中的日期和时间处理函数有哪些?
Java中的日期和时间处理函数比较全面,主要涉及到以下几个方面:
一、获取当前日期和时间
1. 使用java.util.Date类中的构造函数获取当前日期和时间
Date date = new Date();
2. 使用Calendar类的实例获取当前日期和时间
Calendar cal = Calendar.getInstance();
Date now = cal.getTime();
3. 使用java.time包中提供的类获取当前日期和时间
LocalDateTime currentTime = LocalDateTime.now();
二、日期格式化
1. 使用SimpleDateFormat类格式化日期
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String dateString = dateFormat.format(date);
2. 使用DateTimeFormatter类格式化日期和时间
LocalDateTime dateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
String formattedDateTime = dateTime.format(formatter);
三、日期比较
1. 使用Date类比较日期
Date date1 = new Date();
Date date2 = new Date();
if(date1.equals(date2)){
System.out.println("日期相同");
}else{
System.out.println("日期不同");
}
2. 使用Calendar类比较日期
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
if(cal1.equals(cal2)){
System.out.println("日期相同");
}else{
System.out.println("日期不同");
}
3. 使用java.time包中提供的类比较日期
LocalDate date1 = LocalDate.of(2021, 4, 1);
LocalDate date2 = LocalDate.of(2021, 4, 2);
if(date1.equals(date2)){
System.out.println("日期相同");
}else{
System.out.println("日期不同");
}
四、日期加减
1. 使用Calendar类加减日期
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1); //将日期加1天(也可以用cal.add(Calendar.DAY_OF_MONTH,1))
Date tomorrow = cal.getTime();
2. 使用java.time包中提供的类加减日期
LocalDateTime dateTime = LocalDateTime.now();
LocalDateTime plusDays = dateTime.plusDays(1); //将日期加1天
五、日期长度计算
1. 使用Date类计算两个日期之间的天数
Date date1 = new Date();
Date date2 = new Date();
long diff = date2.getTime() - date1.getTime();
long diffDays = diff / (24 * 60 * 60 * 1000);
2. 使用java.time包中提供的类计算两个日期之间的天数
LocalDate date1 = LocalDate.of(2021, 4, 1);
LocalDate date2 = LocalDate.of(2021, 4, 7);
long diffDays = ChronoUnit.DAYS.between(date1, date2);
六、格式化日期时间
1. 使用java.text.SimpleDateFormat类格式化日期时间
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String formattedDate = formatter.format(date);
2. 使用java.time.format.DateTimeFormatter类格式化日期时间
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.now();
String formattedDateTime = dateTime.format(formatter);
七、日期和时间戳转换
1. 将Date转为时间戳
Date date = new Date();
long timestamp = date.getTime();
2. 将时间戳转为Date
long timestamp = 1617885183000L;
Date date = new Date(timestamp);
3. 将LocalDateTime转为时间戳
LocalDateTime dateTime = LocalDateTime.now();
Instant instant = dateTime.toInstant(ZoneOffset.of("+8")); //需要指定时区
long timestamp = instant.toEpochMilli();
4. 将时间戳转为LocalDateTime
long timestamp = 1617885183000L;
Instant instant = Instant.ofEpochMilli(timestamp);
LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneOffset.of("+8")); //需要指定时区
以上是Java中的日期和时间处理函数。在实际开发过程中,根据具体的需求选择合适的函数进行处理,能够更好地增强程序的可读性和可维护性。
