티스토리 뷰

1.  문자를 날짜와시간 형식으로 변경하기 

문자열을 날짜와 시간 형식으로 바꿀때 datetime 또는 dateutil을 사용하여 변경할 수 있다. 

# 04_00_PythonDateTime

import datetime

# 문자열을 날짜 형식으로 
strpDateTime = datetime.datetime.strptime("2019-12-15 21:19:17-0000", "%Y-%m-%d %H:%M:%S%z")
print(strpDateTime)             # 2019-12-15 21:19:17+00:00

dtDateTime = datetime.datetime(2019, 12, 15, 21, 19, 17)
print(dtDateTime)               # 2019-12-15 21:19:17

import dateutil.parser
parserDateTime = dateutil.parser.parse("2019-12-15 21:19:17-0000")
print(parserDateTime)           # 2019-12-15 21:19:17+00:00

 

2. 날짜의 계산 

1) 날짜간의 차이 계산
날짜간의 차이 계산은 "-" 연산자를 사용해야 하며 계산하는 날짜의 타입은 <class 'datetime.datetime'> 이어야 하며, 계산한 차이값은 <class 'datetime.timedelta'> 타입으로 리턴한다. 

각각의 날차를 년, 월, 일, 시간, 분, 초 단위로 계산할  수있으며 차이값은 <class 'int'>  타입으로 리턴한다. 

 

2) 날짜의 더하기 또는 빼기

날짜의 가,감은 <class 'datetime.datetime'> 타입과 <class 'datetime.timedelta'> 타입을 "+" 또는 "-"  연산자를 사용하여 계산하며 결과값은 <class 'datetime.datetime'> 타입으로 리턴한다. 

# 04_01_PythonComputingTime

from datetime import datetime, timedelta, timezone

# 날짜시간 사이의 차이 계산 
TimeOne = datetime.now()
TimeTwo = datetime(2019, 12, 25)
TimeInterval = TimeOne - TimeTwo

# 타입확인
print(type(TimeOne))
print(type(TimeTwo))
print(type(TimeInterval))

# 날짜 간의 차이 계산
print(TimeOne)
print(TimeTwo)
print(TimeInterval)
print(TimeInterval.days)
print(TimeInterval.seconds)
print(TimeInterval.seconds/3600)

# 년, 월, 일, 시간, 분, 초 단위의 차이를 계산
print(TimeOne.year - TimeTwo.year)
print(TimeOne.month - TimeTwo.month)
print(TimeOne.day - TimeTwo.day)
print(TimeOne.hour - TimeTwo.hour)
print(TimeOne.minute - TimeTwo.minute)
print(TimeOne.second - TimeTwo.second)
print(type(TimeOne.year - TimeTwo.year))

# 날짜 더하기와 빼기
AddTime = TimeOne + timedelta(days=100)
SubtractTime = AddTime - timedelta(days=100)
print(TimeOne)
print(AddTime)
print(SubtractTime)
print(type(AddTime))

 

3. 날짜 시간 객체의 기본

날짜 시간 객체에서 가장 많이 사용되는 타입은 <class 'datetime.datetime'>, <class 'datetime.date'>, <class 'datetime.time'>, <class 'datetime.timedelta'> 4가지 정도 이며, 날짜와 시간, 날짜, 시간, 날짜 차이를 저장할 수 있다. 

 

# 04_02_PythonDateTimeObject

import datetime

# 현재 년월일
Today = datetime.date.today()
print(type(Today))                          # <class 'datetime.date'>
print(Today)

# 현재 일자와 시간
NowTime = datetime.datetime.now()
print(type(NowTime))                        # <class 'datetime.datetime'>
print(NowTime)

# 날짜 타입의 선언과 할당
NewDay = datetime.date(2019, 12, 26)
print(type(NewDay))                         # <class 'datetime.date'>
print(NewDay)

# 시간 타입의 선언과 할당
NewTime = datetime.time(12, 30, 40)         
print(type(NewTime))                        # <class 'datetime.time'>
print(NewTime)

4. 날짜(time) 객체를 날짜시간(datetime)객체로 변환하기

파이썬에서는 1970년1월1일 기준으로 시작하여 계산해 오는 Poxis time가 존재한다.  time 객체를 통해서 정확한 시점을 관리 할 수 있을 뿐만 아니라 날짜 객체로의 변환도 가능하다. 

# 04_03_PythonConvertTimeToDatetime

import time
import datetime

# 현재의 time 값
NowEpoch = time.time()
print(type(NowEpoch))                                           # <class 'float'>
print(NowEpoch)                                                 # 1577490087.7280653

# 현재의 datetime 값
NowDateTime = datetime.datetime.now()
print(type(NowDateTime))                                        # <class 'datetime.datetime'>
print(NowDateTime)                                              # 2019-12-28 08:41:27.733046

# time 값을 datetime 값으로 변환
ConvertDateTime = datetime.datetime.utcfromtimestamp(NowEpoch)
print(NowDateTime)                                              # 2019-12-28 08:41:27.733046

# datetime 값을 time 값으로 변환
ConvertTime = ConvertDateTime.timestamp()
print(ConvertTime)                                              # 1577457687.728065

5. 날짜 형식 (Date Formating)

1) 날짜를 문자열로 변환

# 04_04_PythonDateFormat

import datetime

NowDate = datetime.datetime.now()       
print(NowDate)                              # 2019-12-30 01:20:38.420879                       

FormatDate0 = datetime.datetime.strftime(NowDate, '%b %d %y %H %H %S')
print(FormatDate0)                          # Dec 30 19 01 01 38

FormatDate1 =  datetime.datetime.strftime(NowDate, '%y %m %d %H %M %S')
print(FormatDate1)                          # 19 12 30 01 20 38

FormatDate1 =  datetime.datetime.strftime(NowDate, '%Y/%m/%d %H:%M:%S')
print(FormatDate1)                          # 2019/12/30 01:22:24

2) 문자열을 날짜로 변환

# 04_05_PythonDateToString

import datetime

StringDateTime = '2019-12-30 01:20:38.420879'

dateTime = datetime.datetime.strptime(StringDateTime, '%Y-%m-%d %H:%M:%S.%f')
print(type(dateTime))           # <class 'datetime.datetime'>
print(dateTime)                 # 2019-12-30 01:20:38.420879
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함