java 获取当前年月日时分秒
时间: 2025-03-29 22:13:34 浏览: 47
### Java 中获取当前日期时间 (年月日时分秒)
在 Java 编程中,可以通过 `java.util.Calendar` 或者更现代的方式——`java.time.LocalDateTime` 来获取当前的年、月、日、时、分、秒。以下是两种方法的具体实现。
#### 方法一:使用 `Calendar` 类
`Calendar` 是一个抽象类,它提供了访问和修改日期字段的功能。可以利用其子类实例化对象并提取所需的日期部分:
```java
import java.util.Calendar;
public class Main {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1; // 注意:月份从0开始计数
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY); // 使用24小时制
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
System.out.println("Year: " + year + ", Month: " + month + ", Day: " + day +
", Hour: " + hour + ", Minute: " + minute + ", Second: " + second);
}
}
```
这种方法适用于较旧版本的 JDK[^1]。
#### 方法二:使用 `LocalDateTime` 类
自 Java 8 起引入了新的日期时间 API (`java.time`),推荐使用该模块下的 `LocalDateTime` 类来处理日期和时间。这种方式更加直观且线程安全:
```java
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
int year = now.getYear();
int month = now.getMonthValue(); // 返回的是1到12之间的整数值
int day = now.getDayOfMonth();
int hour = now.getHour();
int minute = now.getMinute();
int second = now.getSecond();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDate = now.format(formatter);
System.out.println("Formatted Date-Time: " + formattedDate);
System.out.println("Year: " + year + ", Month: " + month + ", Day: " + day +
", Hour: " + hour + ", Minute: " + minute + ", Second: " + second);
}
}
```
此代码片段展示了如何通过 `LocalDateTime` 提取各个时间组件以及格式化输出的时间字符串[^2]。
如果还需要包含毫秒级别的精度,则可进一步扩展上述逻辑,如下所示:
```java
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
int millisecond = now.getNano() / 1_000_000; // 将纳秒转换成毫秒
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
String formattedDateWithMillis = now.format(formatter).replace(".000", "." + String.format("%03d", millisecond));
System.out.println("Formatted Date-Time with Milliseconds: " + formattedDateWithMillis);
}
}
```
这里特别注意毫秒是从纳秒单位计算而来,并进行了简单的格式调整以匹配标准输出形式[^3]。
---
阅读全文
相关推荐


















