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 引入了新的日期时间 API java.time,使用 LocalDate 或 Year 类可以更简洁地获取年份。
import java.time.LocalDate;
import java.time.Year;
public class GetYearJava8 {
public static void main(String[] args) {
// 使用 LocalDate
int year1 = LocalDate.now().getYear();
System.out.println("Current year (LocalDate): " + year1);
// 使用 Year
int year2 = Year.now().getValue();
System.out.println("Current year (Year): " + year2);
}
}
从日期字符串中提取年份
如果需要从特定格式的日期字符串中提取年份,可以使用 SimpleDateFormat 或 DateTimeFormatter(Java 8+)进行解析。
import java.text.SimpleDateFormat;
import java.util.Date;
public class ParseYearFromString {
public static void main(String[] args) throws Exception {
String dateStr = "2023-10-05";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(dateStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
System.out.println("Year from string: " + year);
}
}
使用 java.time 解析日期字符串(Java 8+)
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class ParseYearJava8 {
public static void main(String[] args) {
String dateStr = "2023-10-05";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate localDate = LocalDate.parse(dateStr, formatter);
int year = localDate.getYear();
System.out.println("Year from string (Java 8): " + year);
}
}
注意事项
- 如果使用
Calendar,注意月份是从 0 开始计数的(0 表示 1 月),但年份是正常的。 java.time是线程安全的,推荐在 Java 8 及以上版本使用。- 解析日期字符串时需确保格式与输入字符串匹配,否则会抛出异常。







