Java工具类5 玩转时间操作
时间: 2024-05-15 11:13:22 浏览: 95
在Java中,对于时间日期的操作非常常见,因此使用工具类可以方便我们进行时间操作。下面介绍几个常用的时间操作工具类。
### 1. SimpleDateFormat
SimpleDateFormat是Java中的一个时间格式化工具类,可以将Date类型的时间格式化为指定格式的字符串。
```java
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(new Date());
```
### 2. Calendar
Calendar是Java中的一个时间操作工具类,可以进行时间的加减、比较、获取等操作。
```java
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 1); // 加一天
cal.add(Calendar.HOUR_OF_DAY, -2); // 减两小时
int year = cal.get(Calendar.YEAR); // 获取年份
int month = cal.get(Calendar.MONTH) + 1; // 获取月份(0-11,需要+1)
int day = cal.get(Calendar.DAY_OF_MONTH); // 获取日
int hour = cal.get(Calendar.HOUR_OF_DAY); // 获取小时
int minute = cal.get(Calendar.MINUTE); // 获取分钟
int second = cal.get(Calendar.SECOND); // 获取秒
```
### 3. Duration
Duration是Java 8中新增的一个时间操作工具类,可以计算两个时间之间的差值。
```java
Duration duration = Duration.between(LocalDateTime.now(), LocalDateTime.of(2022, 1, 1, 0, 0, 0));
long days = duration.toDays(); // 获取相差的天数
long hours = duration.toHours(); // 获取相差的小时数
long minutes = duration.toMinutes(); // 获取相差的分钟数
long seconds = duration.getSeconds(); // 获取相差的秒数
```
### 4. LocalDateTime
LocalDateTime是Java 8中新增的一个时间操作工具类,可以方便地进行日期时间的计算、比较和格式化。
```java
LocalDateTime now = LocalDateTime.now();
LocalDateTime nextMonth = now.plusMonths(1); // 加一个月
LocalDateTime lastWeek = now.minusWeeks(1); // 减一周
boolean isBefore = now.isBefore(nextMonth); // 是否在nextMonth之前
boolean isAfter = lastWeek.isAfter(now); // 是否在now之后
String formatted = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // 格式化为字符串
```
### 5. TimeUnit
TimeUnit是Java中的一个时间单位工具类,可以方便地进行时间单位转换。
```java
long millis = TimeUnit.DAYS.toMillis(1); // 一天的毫秒数
long minutes = TimeUnit.SECONDS.toMinutes(60); // 60秒的分钟数
```
阅读全文