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