java如何获取年份
获取当前年份
使用 java.util.Calendar 类可以获取当前年份。通过 Calendar.getInstance() 获取当前日期实例,再调用 get(Calendar.YEAR) 方法获取年份。

import java.util.Calendar;
public class GetYearExample {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
System.out.println("Current year: " + year);
}
}
使用 java.time 包(Java 8及以上)
在 Java 8 及以上版本,推荐使用 java.time 包中的 LocalDate 或 Year 类来获取年份。这种方式更简洁且线程安全。

import java.time.LocalDate;
import java.time.Year;
public class GetYearJava8 {
public static void main(String[] args) {
// 使用 LocalDate
int year = LocalDate.now().getYear();
System.out.println("Current year (LocalDate): " + year);
// 使用 Year
int currentYear = Year.now().getValue();
System.out.println("Current year (Year): " + currentYear);
}
}
从字符串或日期对象中提取年份
如果需要从特定日期字符串或 Date 对象中提取年份,可以结合 SimpleDateFormat 或 java.time 的解析功能。
使用 SimpleDateFormat(传统方式)
import java.text.SimpleDateFormat;
import java.util.Date;
public class ParseYearFromString {
public static void main(String[] args) throws Exception {
String dateString = "2023-10-05";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(dateString);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
System.out.println("Year from string: " + year);
}
}
使用 java.time.format.DateTimeFormatter(Java 8+)
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class ParseYearJava8 {
public static void main(String[] args) {
String dateString = "2023-10-05";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse(dateString, formatter);
int year = date.getYear();
System.out.println("Year from string (Java 8): " + year);
}
}
总结
- 传统方式:使用
Calendar或SimpleDateFormat,适用于 Java 7 及以下版本。 - 现代方式:使用
java.time包(如LocalDate或Year),推荐用于 Java 8 及以上版本,代码更简洁且线程安全。






