java中如何获取当前时间
获取当前时间的方法
在Java中获取当前时间有多种方式,以下是几种常见的方法:
使用 java.util.Date
Date 类是Java早期版本中用于表示日期和时间的类,可以直接获取当前时间:
import java.util.Date;
Date currentDate = new Date();
System.out.println(currentDate);
输出格式为默认的 EEE MMM dd HH:mm:ss zzz yyyy,例如 Wed May 15 14:32:45 CST 2024。
使用 java.util.Calendar
Calendar 提供了更灵活的日期和时间操作:

import java.util.Calendar;
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);
System.out.println(year + "-" + month + "-" + day);
使用 java.time 包(Java 8及以上推荐)
Java 8引入了新的日期时间API(java.time),功能更强大且线程安全:
1. LocalDateTime
import java.time.LocalDateTime;
LocalDateTime now = LocalDateTime.now();
System.out.println(now); // 输出格式:2024-05-15T14:32:45.123
2. LocalDate 和 LocalTime

import java.time.LocalDate;
import java.time.LocalTime;
LocalDate date = LocalDate.now(); // 仅日期
LocalTime time = LocalTime.now(); // 仅时间
System.out.println(date + " " + time);
3. ZonedDateTime(带时区)
import java.time.ZonedDateTime;
ZonedDateTime zonedDateTime = ZonedDateTime.now();
System.out.println(zonedDateTime); // 输出格式:2024-05-15T14:32:45.123+08:00[Asia/Shanghai]
格式化输出
使用 DateTimeFormatter 自定义格式:
import java.time.format.DateTimeFormatter;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = LocalDateTime.now().format(formatter);
System.out.println(formattedDateTime); // 输出:2024-05-15 14:32:45
时间戳(毫秒/秒)
获取当前时间戳:
long milliseconds = System.currentTimeMillis(); // 毫秒
long seconds = milliseconds / 1000; // 秒
System.out.println(milliseconds);
注意事项
- 推荐使用
java.time包(Java 8及以上),避免使用旧的Date和Calendar。 - 如果需要时区支持,优先选择
ZonedDateTime。 - 格式化时注意线程安全,
DateTimeFormatter是线程安全的。






