Java 更改日期格式
有多种选项可用于将日期字符串转换为日期格式。下面提到的方法可以带来所需的结果。让我们从下面的代码块中了解各种方式。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class StringToDateFormat {
public static void main(String[] args) throws ParseException {
System.out.print("Way1: ");
SimpleDateFormat dt = new SimpleDateFormat("yyyyy-MM-dd");
System.out.print(dt.parse("2021-11-05") + "\n");
System.out.print("Way2: ");
SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy HH:mm:ss", Locale.ENGLISH);
System.out.print(formatter.parse("21/JAN/2021 21:35:56") + "\n");
System.out.print("Way3: ");
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("EEE, d MMM yyyy", Locale.ENGLISH);
System.out.print(LocalDate.parse("Wed, 5 May 2021", formatter1) + "\n");
System.out.print("Way4: ");
System.out.print(LocalDate.parse("2021-05-31") + "\n");
}
}
在 Way1
中,创建了 SimpleDateFormat
类的一个实例。它采用输入日期字符串的格式的 pattern
值。因此,通过这种方式,我们输入了 yyyy-MM-dd
格式的日期。如果参数为 null 或非法,实例化还会抛出一些异常,如 NullPointerException
和 IllegalArgumentException
。现在使用最近创建的 formatter
对象,我们初始化一个 parse
方法。该方法将日期字符串作为输入值,并在解析后返回日期
数据类型。当给定的日期字符串和格式化程序不匹配时,或内部日期字符串未解析时,它会抛出 ParseException
。
在 Way2
中,再次使用 SimpleDateFormat
类来创建应该输入的格式。但是现在,调用了 SimpleDateFormat
的重写构造函数。第一个参数是 Date
字符串的 format/pattern
。另一个是定义特定地理区域或区域的 Locale
。Note:
方法中不允许使用所有语言环境。现在,检查以 mmm 格式显示月份的 dd/MMM/yyyy HH:mm: ss
模式。该格式暗示月份的速记形式可以接受 mmm 形式。此外,格式字符串可能需要几小时、几分钟和几秒钟。
在 Way3
中,使用 DateTimeFormat
类来格式化和打印日期时间对象。ofPattern
方法用于准备所需模式的格式化程序。现在调用 LocalDate
类的静态方法来解析日期。方法是 parse
用于解析文本和 DateTimeFormatter
用于指定输入日期文本的格式。该方法返回 LocalDate
实例并且不为空。当无法解析文本时,它会抛出 DateTimeParseException
。该格式还可以采用日期名称。EEE
缩写在格式化程序中表示相同。
在 Way4
中,直接调用作为 LocalDate
类的静态工厂方法的 parse
方法。这次没有以任何方式定义格式化程序实例或模式。现在该函数采用 yyyy-MM-dd
形式的输入日期字符串。指定的日期字符串必须始终表示有效日期并使用 DateTimeFormatter.ISO_LOCAL_DATE
格式进行转换。当无法解析文本时,该方法会引发异常 DateTimeParseException
。
下面是将日期字符串转换为 Date
形式的代码输出。
Way1: Fri Nov 05 00:00:00 IST 2021
Way2: Thu Jan 21 21:35:56 IST 2021
Way3: 2021-05-05
Way4: 2021-05-31
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn