005. datetime
반응형

c#에서 자주 쓰던 datetime..

 

python도 당연히 지원하고 있다..

 

하지만 역시나 사용하는 방법은 다르지..

 

사용하는 방법은 아래와 같다.

from datetime import datetime

datetime.now()
datetime(2020, 7, 18, 13, 26, 23)
datetime.datetime(2020, 7, 18, 13, 26, 23)

 

상단에 datetime import 후

 

datetime(년, 월, 일, 시, 분, 초)

 

출력의 경우 datetime.now().tostring("yyyy/MM/dd HH:mm:ss.fff) 였던것을..

 

포맷 코드 설명
%a 요일을 짧게 표시합니다. Sun
%A 요일을 길게 표시합니다. Sunday
%w 요일을 숫자로 표시합니다. 일요일을 0부터 시작하여 토요일은 6입니다. 0
%d 날(day)을 출력합니다. 1부터 31까지가 있겠죠 18
%b 월을 영어로 짧게 출력해줍니다. Apr
%B 월을 영어로 길게 출력해줍니다. April
%m 월을 숫자로 표현합니다. 04
%y 년을 짧게 숫자로 표시합니다 21
%Y 년을 길게 숫자로 표시합니다. 2021
%H 시간을 24시간의 표현 방식(00-23)으로 숫자로 표시합니다. 18
%I 시간을 0-12시 표시 방법으로 표시합니다 6
%p 오전(AM), 오후(PM)을 표시합니다. PM
%M 분(0 - 59)을 표시합니다. 38
%S 초(0 - 59)를 표시합니다. 55
%f microsecond단위를 표시합니다. 545433
%j 일년중 몇번째일인지 나타냅니다. 108
%U 일년 중 몇번째 주 인지 나타내니다. 이 포맷에서 일요일은 일주일의 시작입니다. 일년은 52주, 53주입니다. 108
%W 일년 중 몇번째 주 인지 나타내는 것은 %U와 같지만 일주일의 시작을 월요일로 정합니다. 108
%c Local version의 날짜와 시간을 나타냅니다. Sun Apr 18 17:26:26 2021
%x Local version의 날짜만 나타냅니다. 04/18/21
%X Local version의 시간만 나타냅니다. 17:26:26

 

이런형태로............. 그냥 외우자..

 

print( datetime.now().strftime("%Y/%m/%d %H:%M:%S.%f"))

 

여기까지야 뭐 비슷..

 

시간관련 계산방법이 달라진다.

 

C#의 경우

addhour, addminute, addsecond, addday 등의 api등이 제공되나....

 

python은... timedelta라는 api를 통해 계산이 된다..

 

import datetime

d = datetime.datetime(2022, 5, 13)

print(d + datetime.timedelta(days=342))

 

 

위와같이 계산..

 

하지만... 저 timedelta는 일/시/분/초 만 계산을 지원, 년,월은 제공하지 않는다........ 아니 왜?

 

그리하여 년,월의 경우에는 다르게 처리해주어야 한다

 

import datetime
from dateutil.relativedelta import relativedelta


someday = datetime.datetime.today()

otherday = someday + relativedelta(years = 1, months = 1, days=20, hours=1, minutes=1, seconds=1, microseconds=1)

print(otherday)

 

기존의 datetime이 아닌 dateutil 이라는 패키지를 임포트해준 후 사용하면된다.. 그냥 datetime의 timedelta보다 relativedelta를 사용하는것이 속편할 것 같다..

반응형