如何使用 java 将字符串格式化为 dd-MM-yyyy 格式的日期?

java 8object oriented programmingprogramming更新于 2025/4/29 1:22:17

java.text 包提供了一个名为 SimpleDateFormat 的类,用于以所需方式(本地)格式化和解析日期。

使用此类的方法,您可以将字符串解析为日期或将日期格式化为字符串。

将字符串解析为日期

您可以使用 SimpleDateFormat 类的 parse() 方法将给定的字符串解析为日期对象。对于此方法,您需要以字符串格式传递日期。将字符串解析为日期对象 −

  • 通过将所需的日期模式(以字符串格式)传递给其构造函数来实例化 SimpleDateFormat 类。

//实例化 SimpleDateFormat 类
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
  • 使用 parse() 方法将所需的字符串解析/转换为日期对象,并将其作为参数传递。

Date date = formatter.parse(dob);
System.out.println("Date object value: "+date);

示例

以下 Java 程序以字符串格式接受用户的姓名出生日期,将获得的出生日期字符串转换/解析为 Date 对象,计算当前年龄并显示结果。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDate;
import java.time.Period;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;
import java.util.Scanner;
public class CalculatingAge {
   public static Date StringToDate(String dob) throws ParseException{
      //实例化 SimpleDateFormat 类
      SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
      //将给定的字符串解析为 Date 对象
      Date date = formatter.parse(dob);
      System.out.println("Date object value: "+date);
      return date;
   }
    public static void main(String args[]) throws ParseException {
      //从用户那里读取姓名和出生日期
      Scanner sc = new Scanner(System.in);
      System.out.println("输入您的姓名:");
      String name = sc.next();
      System.out.println("输入您的出生日期 (dd-MM-yyyy):");
      String dob = sc.next();
      //将字符串转换为日期
      Date date = CalculatingAge.StringToDate(dob);
      //将获取的 Date 对象转换为 LocalDate 对象
      Instant instant = date.toInstant();
      ZonedDateTime zone = instant.atZone(ZoneId.systemDefault());
      LocalDate givenDate = zone.toLocalDate();
      //计算给定日期与当前日期之间的差值。
      Period period = Period.between(givenDate, LocalDate.now());
      System.out.print("Hello "+name+" your current age is: ");
      System.out.print(period.getYears()+" years "+period.getMonths()+" and "+period.getDays()+" days");
   }
}

输出

输入您的姓名:
Krishna
输入您的出生日期 (dd-MM-yyyy):
26-09-1989
Date object value: Tue Sep 26 00:00:00 IST 1989
Hello Krishna your current age is: 29 years 8 and 5 days

相关文章