Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách tạo đối tượng Date từ giá trị String trong Java

1. Sử dụng lớp SimpleDateFormat

Constructor của lớp này chấp nhận String định dạng ngày và tạo SimpleDateFormat. Để parse chuỗi thành Date:

  • Khởi tạo lớp bằng định dạng mong muốn.
  • Dùng phương thức parse().
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Sample {
    public static void main(String args[]) throws ParseException {
        String date_string = "2007-25-06";
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-dd-MM");
        Date date = formatter.parse(date_string);
        System.out.println("Giá trị ngày: " + date);
    }
}

Kết quả

Giá trị ngày: Mon Jun 25 00:00:00 IST 2007

2. Sử dụng lớp LocalDate (Java 8+)

Phương thức parse() của LocalDate chấp nhận String và trả về LocalDate.

import java.time.LocalDate;

public class Test {
    public static void main(String args[]) {
        LocalDate date = LocalDate.parse("2007-12-03");
        System.out.println(date);
    }
}

Kết quả

2007-12-03

3. Sử dụng lớp DateUtils (Apache Commons Lang)

DateUtils cung cấp tiện ích định dạng ngày trong gói apache.commons. Maven dependency:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.7</version>
</dependency>

Phương thức parseDate() chấp nhận chuỗi định dạng và chuỗi ngày, trả về Date.

import java.util.Date;
import org.apache.commons.lang3.time.DateUtils;

public class Test {
    public static void main(String args[]) {
        String dateInString = "07-06-2013";
        Date date = DateUtils.parseDate(dateInString, "yyyy-MM-dd");
        System.out.println(date);
    }
}

Kết quả

Sat Dec 03 00:00:00 IST 12

4. Sử dụng lớp Instant (Java 8+)

Phương thức parse() của java.time.Instant chấp nhận chuỗi ngày (ISO-8601) và trả về Instant.

import java.time.Instant;

public class Test {
    public static void main(String args[]) {
        String dateInString = "2014-10-05T15:23:01Z";
        Instant instant = Instant.parse(dateInString);
        System.out.println(instant);
    }
}

Kết quả

2014-10-05T15:23:01Z