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

java.text包提供了一类命名的SimpleDateFormat其用于格式化和分析的日期在所需方式(本地)。

使用此类的方法,您可以将String解析为Date或将Date格式化为String。

解析字符串到日期

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

  • 通过将所需的日期格式的String格式传递给其构造函数来实例化SimpleDateFormat类。

//实例化SimpleDateFormat类

SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");

  • 通过将parse()方法作为参数传递,将其解析/转换为Date对象。

Date date = formatter.parse(dob);

System.out.println("Date object value: "+date);

示例

以下Java程序以String格式从用户那里接收姓名的生日,将获取的生日String转换/解析为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");

      //将给定的String解析为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("Enter your name: ");

      String name = sc.next();

      System.out.println("Enter your date of birth (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");

   }

}

输出结果

Enter your name:

Krishna

Enter your date of birth (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

以上是 如何使用Java将日期格式的字符串格式化为dd-MM-yyyy? 的全部内容, 来源链接: utcz.com/z/340890.html

回到顶部