Rust - 현재 시간 가져오기 (DateTime, chrono)

Rust에서 Chrono 크레이트(라이브러리)를 사용하여 현재 시간(DateTime)을 가져오는 방법을 소개합니다.

1. Chrono crate 의존성 추가

Chrono crate는 Cargo.toml에 아래와 같이 추가할 수 있습니다.

[dependencies]
chrono = "0.4.24"

2. 현재 시간(UTC) 가져오기

아래와 같이 현재 시간에 대한 UTC의 DateTime을 가져올 수 있습니다.

  • Utc::now()는 현재 Utc 시간에 대한 DateTime을 리턴
  • RFC 2822: HTTP 및 이메일 헤더 등에 날짜와 시간을 동일하게 표시하기 위한 인터넷 메시지 포맷
  • RFC 3339: 인터넷 프로토콜을 위한 ISO 8601 표준의 프로파일로써 그레고리안 달력을 사용
  • now.format()으로 원하는 포맷 날짜로 출력
use chrono::{DateTime, Utc};

fn main() {
    let now: DateTime<Utc> = Utc::now();

    println!("UTC: {}", now);
    println!("UTC(RFC 2822): {}", now.to_rfc2822());
    println!("UTC(RFC 3339): {}", now.to_rfc3339());
    println!("UTC(custom format): {}", now.format("%a %b %e %T %Y"));
}

Output:

UTC: 2023-05-14 01:31:35.752675656 UTC
UTC(RFC 2822): Sun, 14 May 2023 01:31:35 +0000
UTC(RFC 3339): 2023-05-14T01:31:35.752675656+00:00
UTC(custom format): Sun May 14 01:31:35 2023

3. 현재 시간(Local Time) 가져오기

아래와 같이 Local Time으로 현재 시간을 가져올 수 있습니다.

  • Local::now()는 현재 시간을 Local time(현지 시간)으로 가져옴
use chrono::{DateTime, Local, Utc};

fn main() {
    let utc: DateTime<Utc> = Utc::now();
    let local: DateTime<Local> = Local::now();
    println!("UTC: {}", utc);
    println!("Local: {}", local);
}

Output:

UTC: 2023-05-14 01:51:02.930744600 UTC
Local: 2023-05-14 10:51:02.930751969 +09:00

4. UTC를 Local Time으로 변환

DateTime::from(utc)으로 UTC를 DateTime<Local>로 변환할 수 있습니다.

use chrono::{DateTime, Local, Utc};

fn main() {
    let utc: DateTime<Utc> = Utc::now();
    let local: DateTime<Local> = Local::now();
    println!("UTC: {}", utc);
    println!("Local: {}", local);

    let converted: DateTime<Local> = DateTime::from(utc);
    println!("Converted: {}", converted);
}

Output:

UTC: 2023-05-14 01:50:23.675037208 UTC
Local: 2023-05-14 10:50:23.675045568 +09:00
Converted: 2023-05-14 10:50:23.675037208 +09:00
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha