Java에서 문자열을 DateTime 객체로 변환

Rupam Yadav 2023년10월12일
  1. SimpleDateFormatjava.util.Date를 사용하여 Java에서 날짜 문자열을 DateTime 객체로 변환
  2. Java 8 날짜 및 시간 라이브러리를 사용하여 날짜 문자열을 날짜 시간 형식으로 변환
  3. joda-time을 사용하여 날짜 문자열을 날짜 시간 형식으로 변환
  4. Java에서Timestamp 생성자를 사용하여 문자열 날짜를Timestamp로 변환
  5. Java에서LocalDate를 사용하여 날짜 문자열을Timestamp로 변환
  6. Java에서atStartOfDay()메소드를 사용하여 문자열 날짜를Timestamp로 변환
Java에서 문자열을 DateTime 객체로 변환

이 기사에서는 다양한 접근 방식과 예제를 사용하여 주어진 문자열을DateTime 객체로 변환하는 방법을 소개합니다.

SimpleDateFormatjava.util.Date를 사용하여 Java에서 날짜 문자열을 DateTime 객체로 변환

SimpleDateFormat은 로케일 구분 방식으로 날짜를 구문 분석하고 형식을 지정하는 데 사용되는 클래스입니다. 문자열을 DateTime으로 변환하고 DateTime객체를 문자열로 변환 할 수 있습니다.

아래 코드에서는SimpleDateFormat 인스턴스dateParser에서parse 메소드를 호출하여 구문 분석되는date_time 문자열을 사용합니다. date_time문자열을 구문 분석 할 형식은 SimpleDateFormat생성자 내에 지정됩니다.

또한 다른 형식으로SimpleDateFormat 클래스의 새 인스턴스를 만들었습니다. 그런 다음 파싱 된 날짜가 형식화되고 인쇄됩니다.

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

public class StringToDateTime {
  public static void main(String[] args) {
    String date_time = "11/27/2020 05:35:00";
    SimpleDateFormat dateParser = new SimpleDateFormat("MM/dd/yy HH:mm:ss");
    {
      try {
        Date date = dateParser.parse(date_time);
        System.out.println(date);

        SimpleDateFormat dateFormatter = new SimpleDateFormat("MM/dd/yy");
        System.out.println(dateFormatter.format(date));

      } catch (ParseException e) {
        e.printStackTrace();
      }
    }
  }
}

출력:

Fri Nov 27 05:35:00 UTC 2020
11/27/20

Java 8 날짜 및 시간 라이브러리를 사용하여 날짜 문자열을 날짜 시간 형식으로 변환

LocaleDate 클래스는 시간이없는ISO 형식의 날짜를 나타냅니다. DateTimeFormatter 클래스는 다른 형식으로 날짜를 파싱하는 데 사용됩니다. DateTimeFormatter에서 ofPattern()메서드를 호출하여 맞춤 패턴을 제공 할 수 있습니다.

LocaleDate에는parse()메소드가 있습니다.이 메소드는 맞춤 텍스트 문자열과 특정 포맷터inputFormat을 사용하여LocalDate 인스턴스를 구문 분석하고 가져옵니다. 획득 한LocaleDate 인스턴스date는 형식이 지정되고 출력으로 인쇄됩니다.

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

public class Main {
  public static void main(String[] args) {
    DateTimeFormatter inputFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");

    LocalDate date = LocalDate.parse("11/27/2020 05:35:00", inputFormat);

    DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy");
    System.out.println(date.format(outputFormat));
  }
}

출력:

11/27/2020

joda-time을 사용하여 날짜 문자열을 날짜 시간 형식으로 변환

joda-time은 날짜 및 시간 계산을 수행하는 다양한 메소드를 제공하는 표준 DateTime라이브러리입니다. 이 라이브러리의 기능을 포함하는 maven 종속성은 다음과 같습니다.

 <!-- https://mvnrepository.com/artifact/joda-time/joda-time -->
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.10.8</version>
    </dependency>

DateTimeFormatter는 날짜 및 시간의 사용자 지정 표현을 구문 분석 할 수 있습니다.

커스텀 패턴으로 포맷터 인스턴스datetimeformat을 생성합니다. 포맷터 인스턴스에서 parseDateTime을 호출하면 맞춤 문자열 dateTime을 사용하는 DateTime 객체가 제공됩니다.

여기서 우리는 다른 사용자 정의 패턴으로 새로운DateTimeFormatter 인스턴스dateTimeFormatOut을 만들었습니다. print()메서드는 DateTime 객체joda_time을 새 형식으로 인쇄하는 새 인스턴스에서 호출됩니다.

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

public class StringToDateTime {
  public static void main(String[] args) {
    String dateTime = "11/27/2020 05:35:00";
    DateTimeFormatter datetimeformat = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss");

    DateTime joda_time = datetimeformat.parseDateTime(dateTime);
    System.out.println("joda_time : " + joda_time);

    DateTimeFormatter dateTimeFormatOut = DateTimeFormat.forPattern("MM/dd/yyyy");
    System.out.println("date time format out:  " + dateTimeFormatOut.print(joda_time));
  }
}

출력:

joda_time : 2020-11-27T05:35:00.000+05:30
date time format out:  11/27/2020

Java에서Timestamp 생성자를 사용하여 문자열 날짜를Timestamp로 변환

여기서는Timestamp 생성자를 사용하여Timestamp 객체를 얻습니다. 먼저SimpleDateFormat 클래스를 사용하여date의 형식을 설정 한 다음parser()메서드를 사용하여 날짜 객체를 가져온 다음geteTime()메서드를 사용하여 날짜와 함께 시간을 추가하고 결과적으로 타임 스탬프. 아래 예를 참조하십시오.

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleTesting {
  public static void main(String[] args) {
    try {
      DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
      Date date = dateFormat.parse("12/10/1990");
      Timestamp timeStampDate = new Timestamp(date.getTime());
      System.out.println(timeStampDate);
    } catch (ParseException e) {
      System.out.println(e);
    }
  }
}

출력:

 1990-10-12 00:00:00.0

Java에서LocalDate를 사용하여 날짜 문자열을Timestamp로 변환

Java 8에서는 날짜와 시간을 처리하기 위해 여러 클래스를 포함하는 새로운java.time 패키지를 추가합니다. 여기에서는 해당 패키지의LocalDate 클래스를 사용합니다. LocalDate 클래스의parse()메서드를 사용하여 날짜 문자열에서LocalDate 객체를 가져온 다음atTime()메서드를 사용하여 시간과 함께 날짜를 반환하는LocalDateTime 객체를 얻습니다. now()는 시스템의 현재 시간을 가져 오는 데 사용됩니다.

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class SimpleTesting {
  public static void main(String[] args) {
    LocalDate date = LocalDate.parse("2025-11-25");
    System.out.println(date);
    LocalDateTime dateTime = date.atTime(LocalTime.now());
    System.out.println(dateTime);
  }
}

출력:

2025-11-25
2025-11-25T09:44:56.814795

Java에서atStartOfDay()메소드를 사용하여 문자열 날짜를Timestamp로 변환

LocalDate 클래스의atStartOfDay()메소드는LocalDateTime 객체를 가져 오는 데에도 사용됩니다. 이 메서드는 하루가 시작되는 날짜에 시간을 추가하고 단순한 날짜가 아닌 ‘날짜-시간’을 반환합니다. 아래 예를 참조하십시오.

import java.time.LocalDate;
import java.time.LocalDateTime;

public class SimpleTesting {
  public static void main(String[] args) {
    String strDate = "2019-10-20";
    LocalDate date = LocalDate.parse(strDate);
    LocalDateTime dateTime = date.atStartOfDay();
    System.out.println(dateTime);
  }
}

출력:

2019-10-20T00:00
작가: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

관련 문장 - Java DateTime