如何将 Java 字符串转换为日期对象

原文:https://www.studytonight.com/java-type-conversion/how-to-convert-java-string-to-date

在 Java 中,字符串可以使用LocalDateSimpleDateFormat类的parse()方法转换成日期

SimpleDateFormat 根据指定的日期格式解析字符串。例如日/月/年月、日、年等。

例 1:

这里String使用SimpleDateFormat类的parse()方法转换成指定格式的Date

import java.text.SimpleDateFormat;  
import java.util.Date;  

public class StudyTonight
{    
    public static void main(String [] args)throws Exception
    {  
        String d1 = "23/02/1997"; 
        String d2 = "23-Feb-1997";  
        String d3 = "02 23, 1997";  
        String d4 = "Sun, Feb 23 1997";  
        String d5 = "Sun, Feb 23 1997 22:12:21";  
        String d6 = "23-Feb-1997 22:12:21";

        SimpleDateFormat f1 = new SimpleDateFormat("dd/MM/yyyy");  
        SimpleDateFormat f2 = new SimpleDateFormat("dd-MMM-yyyy");  
        SimpleDateFormat f3 = new SimpleDateFormat("MM dd, yyyy");  
        SimpleDateFormat f4 = new SimpleDateFormat("E, MMM dd yyyy");  
        SimpleDateFormat f5 = new SimpleDateFormat("E, MMM dd yyyy HH:mm:ss");  
        SimpleDateFormat f6 = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");  

        Date date1 = f1.parse(d1);  
        Date date2 = f2.parse(d2);  
        Date date3 = f3.parse(d3);  
        Date date4 = f4.parse(d4);  
        Date date5 = f5.parse(d5);  
        Date date6 = f6.parse(d6); 

        System.out.println(d1+"\t"+date1);  
        System.out.println(d2+"\t"+date2);  
        System.out.println(d3+"\t"+date3);  
        System.out.println(d4+"\t"+date4);  
        System.out.println(d5+"\t"+date5);  
        System.out.println(d6+"\t"+date6); 
    }
}

1997 年 2 月 23 日 sun feb 23 00:00:00 utc 1997 1997 年 2 月 23 日 sun feb 23:00:00 utc 1997 1997 年 2 月 23 日 sun 23:00:00:00 utc 1997 1997 年 2 月 23 日 sun feb 23:00:00:00 utc 1997 1997 年 2 月 23 日 sun 22:12:21 sun feb 23:12:21 utc 1997

示例 2: Java 8 -本地日期类

如果您使用的是 Java 8 或更高版本,那么您可以使用DateTimeFormatter类来格式化日期,使用LocalDate类来将字符串转换为日期对象。请看下面的例子。

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class StudyTonight {

    public static void main(String[] args) {
        String string = "January 12, 2020";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.ENGLISH);
        LocalDate date = LocalDate.parse(string, formatter);
        System.out.println(date);
    }
}

2020-01-12