在 Java 中,咱们常常须要解决日期和工夫。Java 提供了一些类来帮忙咱们实现这些工作,如 Date
、Calendar
、LocalDate
、LocalTime
、LocalDateTime
和ZonedDateTime
等。咱们将别离介绍这些类,并给出相应的示例。
1. Date 类
Date
类是 Java 提供的一个示意日期和工夫的类。然而,因为设计上的缺点,许多办法曾经被废除。因而,咱们更举荐应用 Calendar
类和 Java 8 中引入的新的日期工夫 API。
以下是 Date
类的一些罕用办法:
Date()
:结构一个示意以后日期和工夫的Date
对象。getTime()
:返回自 1970 年 1 月 1 日 0 时 0 分 0 秒以来的毫秒数。
2. Calendar 类
Calendar
类是一个抽象类,它提供了一些办法来操作日期和工夫。Calendar
类的子类如 GregorianCalendar
,它示意公历日期。Calendar
类的罕用办法有:
getInstance()
:返回一个示意以后日期和工夫的Calendar
对象。get(int field)
:返回指定字段的值。set(int field, int value)
:设置指定字段的值。add(int field, int amount)
:给指定字段增加指定的值。getTime()
:返回示意Calendar
对象的日期和工夫的Date
对象。
以下是 Calendar
类的一些常量:
YEAR
:年MONTH
:月DATE
:日HOUR
:小时(12 小时制)HOUR_OF_DAY
:小时(24 小时制)MINUTE
:分SECOND
:秒
3. LocalDate、LocalTime、LocalDateTime 和 ZonedDateTime 类
Java 8 引入了新的日期工夫 API,包含 LocalDate
、LocalTime
、LocalDateTime
和ZonedDateTime
等类。这些类是不可变的,线程平安的,并且设计上更符合实际需要。
以下是这些类的一些罕用办法:
now()
:返回示意以后日期或工夫的对象。of(...)
:依据指定的参数创建对象。plusDays(long daysToAdd)
:返回减少指定天数后的对象。minusDays(long daysToSubtract)
:返回减去指定天数后的对象。plusHours(long hoursToAdd)
:返回减少指定小时数后的对象。minusHours(long hoursToSubtract)
:返回减去指定小时数后的对象。format(DateTimeFormatter formatter)
:应用指定的格式化器将对象格式化为字符串。
4. 示例
上面是一个应用日期和工夫类的示例:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class Main {public static void main(String[] args) {
// 应用 Date 类
Date date = new Date();
System.out.println("以后日期和工夫:" + date);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("格式化后的日期和工夫:" + sdf.format(date));
// 应用 Calendar 类
Calendar calendar = Calendar.getInstance();
System.out.println("年:" + calendar.get(Calendar.YEAR));
System.out.println("月:" + (calendar.get(Calendar.MONTH) + 1)); // 月份从 0 开始,所以须要加 1
System.out.println("日:" + calendar.get(Calendar.DATE));
System.out.println("小时:" + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("分钟:" + calendar.get(Calendar.MINUTE));
System.out.println("秒:" + calendar.get(Calendar.SECOND));
// 应用 LocalDate、LocalTime 和 LocalDateTime 类
LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println("以后日期:" + localDate);
System.out.println("以后工夫:" +localTime);
System.out.println("以后日期和工夫:" + localDateTime);
// 应用 ZonedDateTime 类
ZonedDateTime zonedDateTime = ZonedDateTime.now();
System.out.println("以后日期和工夫(带时区):" + zonedDateTime);
// 格式化日期和工夫
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println("格式化后的日期和工夫:" + localDateTime.format(formatter));
// 日期和工夫的计算
LocalDate tomorrow = localDate.plusDays(1);
System.out.println("今天的日期:" + tomorrow);
LocalTime oneHourLater = localTime.plusHours(1);
System.out.println("一小时后的工夫:" + oneHourLater);
LocalDateTime oneWeekLater = localDateTime.plusDays(7);
System.out.println("一周后的日期和工夫:" + oneWeekLater);
}
}
执行以上代码,将输入相似如下的后果:
以后日期和工夫:Tue May 30 15:23:45 CST 2023
格式化后的日期和工夫:2023-05-30 15:23:45
年:2023
月:5
日:30
小时:15
分钟:23
秒:45
以后日期:2023-05-30
以后工夫:15:23:45.123456789
以后日期和工夫:2023-05-30T15:23:45.123456789
以后日期和工夫(带时区):2023-05-30T15:23:45.123456789+08:00[Asia/Shanghai]
格式化后的日期和工夫:2023-05-30 15:23:45
今天的日期:2023-05-31
一小时后的工夫:16:23:45.123456789
一周后的日期和工夫:2023-06-06T15:23:45.123456789
以上就是 Java 罕用类库中的日期与工夫类的简介和示例。心愿这些内容能帮忙你了解和应用这些类。如果有任何疑难,请随时发问,我会尽力帮忙你。
举荐浏览:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g