파이썬 언어에서는 날짜및 시간을 다룰때는 파이썬에서 기본적으로 제공하는 datetime 모듈을 사용합니다.

 datetime을 사용할때는 import datetime 명령으로 datetime모듈을 불러 옵니다(import).


import datetime

Methods


클래스

설 명

  datetime.date

  일반적으로 사용되는 그레고리안 달력(Gregorian Calendar)의 년, 월, 일을 나타냄

  datetime.time

  시간을 시, 분, 초, 마이크로초, 시간대(Time zone)로 나타냄

  datetime.datetime

  date클래스와 time클래스의 조합으로 년, 월, 일, 시, 분, 초, 마이크로초, 시간대 정보를 나타냄

  datetime.timedelta

  두 날짜 혹은 시간 사이의 기간을 표현



 

 datetime.date

 

 datetime.date 클래스는 일반적으로 사용되는 년, 월, 일로 표기되는 그레고리안 달력의 날짜를 표현합니다.


  • 생성자 : datetime.date(년, 월, 일)
  • 년 : 1~9999
  • 월 : 1~12
  • 일 : 1~해당월의 마지막 날짜


 예)

import datetime

DT = datetime.date(2014, 1, 1)

print(DT)

>> 2014-01-01


#허용 값을 넘는 값을 입력하면 에러가 발생합니다.

#datetime.date는 인자 3개를 전부 입력해야합니다. 입력하지 않으면 에러가 발생합니다


 datetime.date 속성입니다.

속 성

내 용

  year

  년(읽기전용)

  month

  월(읽기전용)

  day

  일(읽기전용)

  today

  현재 시스템의 오늘날짜

  weekday

  요일을 정수로 변환하여 반환


 예)

import datetime

DT = datetime.date(2014, 1, 1)

print(DT.year)

>> 2014

print(DT.month)

>> 1

print(DT.day)

>> 1


DDay = datetime.date.today()

print(DDay)

>> 2014-02-04


#weeday() 로 반환되는 정수는 0(월),1(화),2(수),3(목),4(금),5(토),6(일)

Week = datetime.date.today()

print(Week.weekday())

>> 1



 

 datetime.time

 

 datetime.time 클래스는 시, 분, 초의 시간을 표현합니다.


  • 생성자 : datetime.time(시, 분, 초)
  • 시 : 0~23
  • 분 : 0~59
  • 초 : 0~59


 예)

import datetime

a = datetime.time(23)

print(a)

>> 23:00:00


a = datetime.time(23,59)

print(a)

>> 23:59:00


a = datetime.time(23,59,59)

print(a)

>> 23:59:59


#허용 값을 넘는 값을 입력하면 에러가 발생합니다.


 datetime.date 속성입니다.

속성

설 명

  hour

  시(읽기전용)

  minute

  분(읽기전용)

  second

  초(읽기전용)


 예)

import datetime


tm = datetime.time(10, 15, 20)

print( tm.hour )

>> 10

print( tm.minute )

>> 15

print( tm.second )

>> 20



 

 datetime.datetime

 

 datetime.datetime 클래스는 년, 월, 일, 시, 분, 초로 표현합니다.


  • 생성자 : datetime.datetime(년, 월, 일, 시, 분, 초)
  • 년 : 1~9999
  • 월 : 1~12
  • 일 : 1~해당월의 마지막 날짜
  • 시 : 0~23
  • 분 : 0~59
  • 초 : 0~59
  • 숫자로 각 인자를 받아서 datetime 객체를 생성하며 년,월,일은 생략이 불가능합니다. 시분초의 인자가 생략될 경우 0으로 초기화합니다.


 예)

import datetime


a = datetime.datetime(2014, 1, 1)

print(a)

>> 2014-01-01 00:00:00


a = datetime.time(2014, 12, 31, 23)

print(a)

>> 2014-12-31 23:00:00


#허용 값을 넘는 값을 입력하면 에러가 발생합니다.


  datetime.date 속성입니다.

속성

설 명

  year

  년(읽기전용)

  month

  월(읽기전용)

  day

  일(읽기전용)

  hour

  시(읽기전용)

  minute

  분(읽기전용)

  second

  초(읽기전용)

  today

  현재 시각

  weekday

  요일을 정수로 변환하여 반환

  date

  date객체를 반환

  time

  time 객체를 반환


 예)

import datetime


tm = datetime.datetime(2014, 12, 31, 10, 15, 20)

print( tm.year )

>> 2014

print( tm.month )

>> 12

print( tm.day )

>> 31

print( tm.hour )

>> 10

print( tm.minute )

>> 15

print( tm.second )

>> 20


tm = datetime.datetime.today();

print( tm )

>> 2014-02-26 16:53:44.095000

#today() 는 밀리세컨초 까지 얻어오며 지역시간(PC시간)을 얻어옵니다.


tm = datetime.datetime(2014, 12, 31, 10, 15, 20)

print(tm.weekday())

>> 2

#date클래스에서 사용한 weekday와 같습니다.


tm = datetime.datetime(2014, 12, 31, 10, 15, 20)

dt = tm.date();

print(dt)

>> 2014-12-31


dt = tm.time();

print(dt)

>> 10



 

 datetime.timedelta

 

 datetime.timedelta 클래스는 두 날짜 혹은 시간 사이의 기간을 표현합니다. 인자가 양수인 경우 현시점으로부터 이후를 나타내며, 음수인 경우 현시점 이전을 나타냅니다.


  • 생성자 : datetime.timedelta(weeks, days, hours, minutes, seconds)


 datetime.timedelta 파라미터입니다.

속성

설 명

  weeks        

  주,                음수 또는 양수 / 1주는 7일과 동일합니다.

  days

  일,                음수 또는 양수

  hours

  시,                음수 또는 양수

  minutes

  분,                음수 또는 양수

  seconds

  초,                음수 또는 양수

  milliseconds

  밀리초,          음수 또는 양수  

  microseconds

  마이크로초,    음수 또는 양수


 datetime.timedelta 클래스는 개별적으로 쓰이기 보다 datetime클래스로 만들어진 시간정보객체의 시간을 변경하고자 할 때 사용됩니다.


 예) 객체생성 및 사용법

import datetime

tm = datetime.datetime(2014, 12, 31, 10, 15, 20)

dt = tm.date();

print(tm)

>> 2014-12-31 10:15:20


# timedelta 클래스에 weeks 값 3을 입력하여 3주, 21일의 정보 저장

tm = datetime.datetime(2014, 12, 31, 10, 15, 20)

tm = tm - datetime.timedelta(weeks=3) 기존 시간에 3주(21일)빼기

print(tm)

>> 2014-12-10 10:15:20 


# timedelta 클래스에 weeks 값 -3을 입력하여 -3주, -21일의 정보 저장

tm = datetime.datetime(2014, 12, 31, 10, 15, 20)

tm = tm + datetime.timedelta(weeks=-3) 기존 시간에 -3주(-21일) 더하기

print(tm)

>> 2014-12-10 10:15:20 


# timedelta 클래스에 days 값 5을 입력하여 5일의 정보 저장

tm = datetime.datetime(2014, 12, 31, 10, 15, 20)

tm = tm + datetime.timedelta(days=5) 기존 시간에 5일 더하기

print(tm)

>> 2015-01-05 10:15:20


# timedelta 클래스에 hours값 1을 입력하여 1시간의 정보 저장

tm = datetime.datetime(2014, 12, 31, 10, 15, 20)

tm = tm + datetime.timedelta(hours=1) 기존 시간에 1시간 더하기

print(tm)

>> 2014-12-31 11:15:20


# timedelta 클래스에 minute값 11을 입력하여 11분의 정보 저장

tm = datetime.datetime(2014, 12, 31, 10, 15, 20)

tm = tm - datetime.timedelta(minutes=11) 기존 시간에 11분 빼기

print(tm)

>> 2014-12-31 10:04:20


# timedelta 클래스에 seconds값 29을 입력하여 29초의 정보 저장

tm = datetime.datetime(2014, 12, 31, 10, 15, 20)

tm = tm + datetime.timedelta(seconds=29) 기존 시간에 29초 더하기

print(tm)

>> 2014-12-31 10:15:49