### Java 获取当前日期时间和本周的星期一的日期时间
在Java中,获取当前日期时间以及本周星期一的具体日期时间是一项常见的需求,特别是在处理与日期相关的业务逻辑时。本文将详细介绍如何利用Java内置类`Calendar`和`SimpleDateFormat`来实现这一功能。
#### 一、基础知识介绍
1. **`Calendar`类**:`Calendar`是抽象类,不能被实例化,但是可以通过`getInstance()`方法获取其实例。它提供了一系列方法用于操作日期和时间。
2. **`SimpleDateFormat`类**:这是一个格式化日期/时间的类,可以将`Date`对象格式化为字符串,也可以将符合特定模式的字符串解析为`Date`对象。
#### 二、获取当前日期时间
为了获取当前日期时间,我们可以创建一个`Calendar`实例,并设置其显示的时间为当前时间。然后,通过`SimpleDateFormat`类将其格式化为所需的格式。例如:
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
public class DateExample {
public static void main(String[] args) {
SimpleDateFormat format = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒", Locale.CHINA);
Calendar calendar = Calendar.getInstance(Locale.CHINA);
calendar.setTimeInMillis(System.currentTimeMillis());
System.out.println("当前时间: " + format.format(calendar.getTime()));
}
}
```
#### 三、获取本周星期一的日期时间
接下来,我们需要找到本周星期一的日期时间。这可以通过调整`Calendar`实例中的`DAY_OF_WEEK`字段来实现。由于在中国,星期一是每周的第一天,我们首先需要设置`Calendar`的起始日为星期一,然后将当前日期调整到最近的星期一。
```java
calendar.setFirstDayOfWeek(Calendar.MONDAY); // 设置每周的起始日为星期一
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println("星期一时间: " + format.format(calendar.getTime()));
```
#### 四、示例代码详解
结合以上步骤,完整的示例代码如下:
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
public class DateExample {
public static void main(String[] args) {
SimpleDateFormat format = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒", Locale.CHINA);
Calendar calendar = Calendar.getInstance(Locale.CHINA);
calendar.setTimeInMillis(System.currentTimeMillis());
System.out.println("当前时间: " + format.format(calendar.getTime()));
calendar.setFirstDayOfWeek(Calendar.MONDAY); // 设置每周的起始日为星期一
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println("星期一时间: " + format.format(calendar.getTime()));
}
}
```
#### 五、运行结果分析
如果今天是2011年8月28日星期日13时31分5秒,那么运行上述程序将得到以下输出:
```
当前时间: 2011 年 08 月 28 日 13 时 31 分 05 秒
星期一时间: 2011 年 08 月 22 日 13 时 31 分 05 秒
```
这里,“星期一时间”表示的是上一周星期一的具体日期时间。
#### 六、总结
本文介绍了如何在Java中使用`Calendar`和`SimpleDateFormat`类获取当前日期时间以及本周星期一的日期时间。通过这些工具,我们可以轻松地处理与日期相关的各种问题。希望本文能帮助您更好地理解和使用这些Java内置类。