如何使用 Java 从 Date 中提取日、月和年?

How to extract day, month and year from Date using Java?

SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
Date date = formatter.parse("2020/05/06"); 

我需要从中提取日、月和年,即

int day = 06;
int  month = 05;
int year = 2020;

但是当我使用

int day = date.getDay();
int month = date.getMonth();
int day = date.getYear(); 

它不工作。

不要使用 Date,因为它已被弃用。使用LocalDate and DateTimeFormatter如下。

LocalDate ld  = LocalDate.parse("2020/05/06", 
              DateTimeFormatter.ofPattern("yyyy/MM/dd"));
int year = ld.getYear();
int month = ld.getMonthValue();
int day = ld.getDayOfMonth();
System.out.println(month + " " + day + " " + year);

版画

5 6 2020

查看 java.time 包中的其他 date/time 相关 类。

将新的 api 用作 会好得多,但如果出于某种原因您想使用旧的 api,则应使用 Calendar

SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
formatter.parse("2020/11/06");
Calendar calendar = formatter.getCalendar();

int day = calendar.get(Calendar.DAY_OF_MONTH);
int month = calendar.get(Calendar.MONTH) + 1; // add 1 because it returns 0-11
int year = calendar.get(Calendar.YEAR);

System.out.println(day);
System.out.println(month);
System.out.println(year);