从日期获取年份的 Java 程序


在我们的日常生活当中,在现实世界中会产生巨大的数据。在生成的信息中,日期通常用于各种事情,比如安排约会、计划日常活动。在使用编程中的日期时,从特定日期中提取年份可能是一项常见任务。我们可以在 java 编程语言中使用不同的内置函数从特定日期中提取年份。在本文中,我们将讨论从特定日期中提取年份的不同方法。

Example
Input: "13-07-2000"
Output: 2000
Example
Input: "1997/07/13"
Output: 1997

方法

  • 使用 LocalDate 类。

  • 使用 String.split() 方法。

  • 使用 Calender 类。

  • 使用 SimpleDateFormat 类。

算法

  • 在 Main 类中编写自定义方法从日期中提取年份。

  • 在自定义函数中使用 java 提供的不同内置函数来提取日期。

  • 打印从日期中提取的年份。

我们现在将详细讨论从日期中提取年份的每种方法,并在 java 编程语言中实现代码。

方法 1:使用 LocalDate 类

采用这种方法时,我们将使用 java.time 包中的 LocalDate 类。LocalDate 的“getYear()”方法通常会返回一个整数作为输出。

语法

以下语法表示了 getYear() 方法的使用。

int variable = DateObject.getYear();

以下是一个使用上述语法的简单代码片段

LocalDate currentDate = LocalDate.parse("2000-07-13");
int year = currentDate.getYear();
System.out.println(year); // gives 2000 as output     

示例

在这个程序中,我们将导入 java.time 包的 LocalDate 类。然后我们需要使用 parse() 方法将字符串解析为日期。parse() 方法接受“yyyy-mm–dd”格式的日期,并将字符串转换为本地日期。一旦获得日期,我们就可以使用 getYear() 方法提取年份。

// Java program for extracting Year from Date
import java.util.*;
import java.time.LocalDate;
public class Main {
   public static void getYearFromDate(String date) {
      LocalDate inputDate = LocalDate.parse(date);
      // Get year from date
      int year = inputDate.getYear();
      System.out.println("Year extracted from date is : " + year);
   }
   public static void main(String args[]) {
      String date = "2000-07-13";
      getYearFromDate(date);
   }
}

输出

Year extracted from date is : 2000    

时间复杂度:O(1),辅助空间:O(1)

方法 2:使用 String.split() 方法

采用这种方法时,我们将使用 String 类的 split() 方法。该方法用于基于分隔符(用于将字符串分成标记的符号)将字符串分成标记。

语法

以下语法表示了 split() 方法的使用。它把一个分隔符作为输入,然后给出标记字符串数组作为输出。

String array_variable [] = String_Variable.split(“delimiter”);   

以下是一个展示上述语法的简单代码示例

date  = '13-07-2000';
String tokens[] = date.split("-");
System.out.println(tokens[2]); 
// gives 2000 as output

示例

在上述程序中,声明了一个字符串并将其传递给 extractYear() 函数。该函数通常使用 String 类的 split() 方法。split() 方法通常需要一个分隔符(在上述程序中为“-”),并将该字符串分为一个字符串数组。由于年份是日期中的第 3 个标记,因此我们打印 tokens[2],它将给出所需的输出。

// Java program for  extracting year from the given date
import  java.util.*;
public class Main {
   public static void extractYear(String date) {
      // Splitting the given date by '-'
      String tokens[] = date.split("-");
      String year = tokens[2];
      System.out.println("Extracted Year from Date: " + year);
   }
   public static void main(String args[]) {
      // Given date
      String date = "13-07-2000";
      extractYear(date);
   }
}

输出

Extracted Year from Date: 2000

时间复杂度:O(1),辅助空间:O(1)

方法 3:使用 Calendar 类

采用此方法时,我们将使用 util 包中的 Calendar 类。在本示例中,我们使用 Calendar.YEAR,该类使用 Calendar 对象提取特定日期中的年份。

语法

以下语法表示了 Calender 类的 get() 方法的使用。它返回指定为 field_parameter 的整数值。

int var_name = CalenderObject.get(field_parameter);

以下是一个简单的代码片段,它使用上述语法从日期中获取年份 -

Calendar cal = Calendar.getInstance(); // returns  Calender Object with present date
int Year = cal.get(Calendar.YEAR); // gives the year from Calender Object

示例

在上述示例中,我们使用 Calendar 类从日期中获得年份。我们声明了一个日历对象,并使用 Calendar 类的 getInstance() 方法获取当前日期对象。我们使用 get() 方法并传递 Calendar.YEAR 参数以从日期中获取年份。

import java.util.Calendar;
public class Main {
   public static void getYear(Calendar cal){
      int Year = cal.get(Calendar.YEAR);
      System.out.println("Extracted year from date : " +Year);
   }
   public static void main(String[] args) {
      Calendar cal = Calendar.getInstance();
      getYear(cal);
   }
}	

输出

Extracted year from date : 2023

时间复杂度:O(1),辅助空间:O(1)

方法 4:使用 SimpleDateFormat 类

采用此方法时,我们将使用 text 包中的 SimpleDateFormat 类和 util 包中的 Date 类。在本示例中,我们使用 Date 类并首先获取一个日期,然后创建一个 SimpleDateFormat 对象,该对象通常会按照参数中给出的规定格式对日期进行格式化。

语法

以下语法表示了 SimpleDateFormat 类的 format() 方法的使用。它返回指定为 field_parameter 的整数值。

int var_name = CalenderObject.get(field_parameter);

以下是上述语法的实现

Calendar cal = Calendar.getInstance(); 
// returns Calendar Object with present date
int Year = cal.get(Calendar.YEAR); // gives the year from Calendar Object

示例

本示例中,我们使用了 Date 和 SimpleDateFormat 类。SimpleDateFormat 用于仅从日期对象中获取日期,因为日期会提供日期和时间二者。因此,我们首先声明一个日期对象,然后创建一个 SimpleDateFormat 对象,并通过传递“yyyy”参数来获取年份。format() 方法用于按照给定的模式返回日期或时间。

import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
   public static void getYear(Date date) {
      SimpleDateFormat getYearDate = new SimpleDateFormat("yyyy");
      String year = getYearDate.format(date);
      System.out.println("Extracted year from date :" + year);
   }
   public static void main(String[] args) {
      Date date = new Date();
      getYear(date);
   }
}

输出

Extracted year from date :2023

时间复杂度:O(1),辅助空间:O(1)

因此,在本文中,我们讨论了用于实现 Java 程序以从特定日期中提取年份的不同方法。

更新时间:2023-4-11

3K+ 浏览次数

开启您的 事业

完成课程即可获得认证

开始
广告
© . All rights reserved.