pendulum - datetime 다루기
포스트
취소

pendulum - datetime 다루기

Python에서 datetime 객체를 다루는 라이브러리 중 하나인 pendulum에 대해서 간단히 알아보겠습니다.

Instantiation

pendulum의 default timezone은 ‘UTC’입니다.

1
2
3
4
5
import pendulum

dt = pendulum.datetime(2022, 3, 1)
dt
# DateTime(2022, 3, 1, 0, 0, 0, tzinfo=Timezone('UTC'))

local() 함수를 이용해 로컬 timezone 정보를 이용하는 것이 가능합니다.

1
2
3
4
5
6
dt1 = pendulum.local(2022, 3, 1)
dt1
# DateTime(2022, 3, 1, 0, 0, 0, tzinfo=Timezone('Asia/Seoul'))

print(dt1.timezone.name)
# Asia/Seoul

now() 이외에도 today(), tomorrow(), yesterday() 등의 함수를 이용하여 datetime을 계산하는 것이 가능합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
now = pendulum.now()
print(now)
# 2022-03-27T14:52:40.586083+09:00

dt = pendulum.today()
print(dt)
# 2022-03-27T00:00:00+09:00

dt1 = pendulum.tomorrow()
print(dt1)
# 2022-03-28T00:00:00+09:00

dt2 = pendulum.yesterday()
print(dt2)
# 2022-03-26T00:00:00+09:00

Parsing

parse() 함수를 통해 ‘날짜’ 또는 ‘시간’형태로 된 문자열을 파싱해 datetime으로 변환할 수 있습니다. strict 옵션을 이용하여 표준화되지 않은 문자열에 대해서도 파싱이 가능합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dt = pendulum.parse('2022-03-01 03:20:00')
print(dt)
# 2022-03-01T03:20:00+00:00

dt1 = pendulum.parse('2022-03-01')
print(dt1)
# 2022-03-01T00:00:00+00:00

dt2 = pendulum.parse('03:20:00')
print(dt2)
# 2022-03-27T03:20:00+00:00

dt3 = pendulum.parse('31-01-01', strict=False)
print(dt3)
# 2031-01-01T00:00:00+00:00

from_format()함수를 통해 형식을 지정해 문자열을 datetime 객체로 변환할 수 있습니다.

1
2
3
dt = pendulum.from_format('1975-05-21 22', 'YYYY-MM-DD HH')
print(dt)
# 1975-05-21T22:00:00+00:00

Localization

set_locale()diff_for_humans() 함수는 지정해 준 옵션에 따라 로컬라이즈되어 표현됩니다.

1
2
3
4
5
6
7
pendulum.set_locale('ko')
print(pendulum.now().add(years=1).diff_for_humans())
# 1년 후

pendulum.set_locale('en')
print(pendulum.now().add(years=1).diff_for_humans())
# in 1 year

참고자료

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.