<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
		<id>http://lhdangerous.godohosting.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Python_datetime_%EB%AA%A8%EB%93%88_quick_reference</id>
		<title>Python datetime 모듈 quick reference - 편집 역사</title>
		<link rel="self" type="application/atom+xml" href="http://lhdangerous.godohosting.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Python_datetime_%EB%AA%A8%EB%93%88_quick_reference"/>
		<link rel="alternate" type="text/html" href="http://lhdangerous.godohosting.com/wiki/index.php?title=Python_datetime_%EB%AA%A8%EB%93%88_quick_reference&amp;action=history"/>
		<updated>2026-04-18T10:28:32Z</updated>
		<subtitle>이 문서의 편집 역사</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>http://lhdangerous.godohosting.com/wiki/index.php?title=Python_datetime_%EB%AA%A8%EB%93%88_quick_reference&amp;diff=259&amp;oldid=prev</id>
		<title>Doguin: 새 문서: # datetime 모듈 quick reference 공식문서 참고: https://docs.python.org/ko/3/library/datetime.html 쉬운 한글자료: https://python.bakyeono.net/chapter-11-3.html 일상생...</title>
		<link rel="alternate" type="text/html" href="http://lhdangerous.godohosting.com/wiki/index.php?title=Python_datetime_%EB%AA%A8%EB%93%88_quick_reference&amp;diff=259&amp;oldid=prev"/>
				<updated>2019-09-11T10:21:49Z</updated>
		
		<summary type="html">&lt;p&gt;새 문서: # datetime 모듈 quick reference 공식문서 참고: https://docs.python.org/ko/3/library/datetime.html 쉬운 한글자료: https://python.bakyeono.net/chapter-11-3.html 일상생...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;# datetime 모듈 quick reference&lt;br /&gt;
공식문서 참고: https://docs.python.org/ko/3/library/datetime.html&lt;br /&gt;
쉬운 한글자료: https://python.bakyeono.net/chapter-11-3.html&lt;br /&gt;
일상생활에서 사용하는 날짜와 시간을 다루기 위한 파이썬 기본 모듈.&lt;br /&gt;
날짜를 나타내는  datetime.date class, 시각을 나타내는 datetime.time class, 둘 모두를 나타내는 datetime.datetime class 를 가지고 있다.&lt;br /&gt;
&lt;br /&gt;
당연하게도  OS에서 현재  timezone과 시간이 올바르게 셋팅되어있어야한다.&lt;br /&gt;
라즈베리파이에서는  raspi-config 프로그램으로 타임존을 셋팅해주면 된다.&lt;br /&gt;
&lt;br /&gt;
OS 기반의 시간을 다루는 time 모듈도 있으니 참고.&lt;br /&gt;
&lt;br /&gt;
## datetime.date class&lt;br /&gt;
* 특정날짜 객체 생성: datetime.date(1978,8,6)&lt;br /&gt;
* 오늘날짜 객체 생성: datetime.date.today()&lt;br /&gt;
&lt;br /&gt;
```python&lt;br /&gt;
# datetime.date-test.py&lt;br /&gt;
from datetime import date&lt;br /&gt;
&lt;br /&gt;
print(date(1978,8,6))&lt;br /&gt;
print(date.today())&lt;br /&gt;
&lt;br /&gt;
# 1978-08-06&lt;br /&gt;
# 2019-08-14&lt;br /&gt;
```&lt;br /&gt;
|datetime.date class 속성 또는 메서드	|값 또는 기능|&lt;br /&gt;
|-|-|&lt;br /&gt;
year|	년&lt;br /&gt;
month	|월&lt;br /&gt;
day|	일&lt;br /&gt;
weekday()	|요일 (월요일=0, 일요일=6)&lt;br /&gt;
isoformat()	|ISO 표준 문자열 표현&amp;lt;br&amp;gt;“년-월-일”(예: 1986-03-06)과 같은 형식&lt;br /&gt;
strftime(format)	| 형식을 지정하여 표현 (자료 참고)&lt;br /&gt;
&lt;br /&gt;
```python&lt;br /&gt;
# datetime.date-test.py&lt;br /&gt;
from datetime import date&lt;br /&gt;
&lt;br /&gt;
myBirthDay = date(1978,8,6)&lt;br /&gt;
today = date.today()&lt;br /&gt;
print(myBirthDay)&lt;br /&gt;
print(today)&lt;br /&gt;
&lt;br /&gt;
# 1978-08-06&lt;br /&gt;
# 2019-08-14&lt;br /&gt;
&lt;br /&gt;
print('나는 %d년 %d월 %d일에 태어남' %(myBirthDay.year, myBirthDay.month,myBirthDay.day))&lt;br /&gt;
# 나는 1978년 8월 6일에 태어남&lt;br /&gt;
&lt;br /&gt;
day = '월화수목금토일'[today.weekday()]&lt;br /&gt;
print('오늘은 %s요일이에요' %day)&lt;br /&gt;
# 오늘은 수요일이에요&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## datetime.time class&lt;br /&gt;
밀리세컨드까지 특정해 표현가능.&lt;br /&gt;
* 특정 시각 객체 생성: datetime.time(13,30,0,100000) # 13시30분0초.100000&lt;br /&gt;
|datetime.time class 속성 또는 메서드|	값 또는 기능|&lt;br /&gt;
|-|-|&lt;br /&gt;
hour	|시&lt;br /&gt;
minute|	분&lt;br /&gt;
second	|초&lt;br /&gt;
microsecond	|마이크로초&lt;br /&gt;
isoformat()	I|SO 표준 문자열 표현&lt;br /&gt;
strftime(format)	|임의 형식으로 문자열 표현&lt;br /&gt;
&lt;br /&gt;
```python&lt;br /&gt;
# python interpreter&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; from datetime import time&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; at = time(15, 30, 45)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; at.hour, at.minute, at.second  # 시, 분, 초&lt;br /&gt;
(15, 30, 45)&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; at.microsecond                 # 마이크로초&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; at.isoformat()                 # ISO 표준 문자열 표현&lt;br /&gt;
'15:30:45'&lt;br /&gt;
```&lt;br /&gt;
### isoformat 문자열을 다시  datetime객체로&lt;br /&gt;
* datetime.fromisoformat(string)&lt;br /&gt;
&lt;br /&gt;
## datetime.datetime class&lt;br /&gt;
datetime.date 와 datetime.time 을 합쳐놓은 class. 양쪽의 속성과 메소드를 모두 사용할 수 있다.&lt;br /&gt;
* 특정 일시 객체 생성: datetime(년, 월, 일, 시, 분, 초, 마이크로초)&lt;br /&gt;
* 현재 일시 객체 생성: datetime.now()&lt;br /&gt;
* 날짜와 시각 결합: datetime.combine(날짜, 시각)&lt;br /&gt;
&lt;br /&gt;
```python&lt;br /&gt;
# python interpreter&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; from datetime import datetime&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; datetime(2017, 11, 14)&lt;br /&gt;
datetime.datetime(2017, 11, 14, 0, 0)&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; datetime(2017, 11, 14, 8, 30)&lt;br /&gt;
datetime.datetime(2017, 11, 14, 8, 30)&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; datetime(2017, 11, 14, 8, 30, 50, 200000)&lt;br /&gt;
datetime.datetime(2017, 11, 14, 8, 30, 50, 200000)&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; datetime.now()  # 현재 일시&lt;br /&gt;
datetime.datetime(2017, 11, 14, 19, 4, 7, 950704)&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; datetime.combine(date.today(), time(15))  # 오늘 3시&lt;br /&gt;
datetime.datetime(2017, 11, 14, 15, 0)&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; now = datetime.now()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; now.year, now.month, now.day, '월화수목금토일'[now.weekday()]&lt;br /&gt;
(2017, 11, 14, '화')&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; now.hour, now.minute, now.second, now.microsecond&lt;br /&gt;
(19, 8, 52, 283277)&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; now.date(), now.time()&lt;br /&gt;
(datetime.date(2017, 11, 14), datetime.time(19, 8, 52, 283277))&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; now.isoformat()&lt;br /&gt;
'2017-11-14T19:08:52.283277'&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## datetime.timedelta class&lt;br /&gt;
두시간 사이의 차를 나타내는 timedelta class를 사용가능하다.&lt;br /&gt;
예를 들어,&lt;br /&gt;
date2 = date1 + timedelta&lt;br /&gt;
timedelta = date1 - date2&lt;br /&gt;
와 같은 연산이 가능하다.&lt;br /&gt;
자세한 내용은 참고자료 검토.&lt;br /&gt;
&lt;br /&gt;
```python&lt;br /&gt;
# python interpreter&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; from datetime import datetime, timedelta&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; now = datetime.now()                 # 현재 일시&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; after_1000h = timedelta(hours=1000)  # 1천 시간&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; now + after_1000h                    # 지금부터 1천 시간 후&lt;br /&gt;
datetime.datetime(2017, 12, 26, 11, 42, 32, 103816)&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; birthday = date(1986, 3, 6)          # 생년월일&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; today = date.toady()                 # 오늘&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; today - birthday                     # 태어난 뒤 오늘까지의 기간&lt;br /&gt;
datetime.timedelta(11576)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## 세계시계 datetime.tzinfo class&lt;br /&gt;
* time 이나 datetime 오브젝트의 멤버변수인 tzinfo가 None이 아닌 값(tzinfo나 그 서브클래스인 timezone 오브젝트)을 갖는 경우 세계시계로 작동하게 된다. (공식 문서에서 aware 라고 표현됨.)&lt;br /&gt;
* 생성자에  `tzinfo=` 아규먼트를 넣어줌으로써 세계시계작동시킨다.&lt;br /&gt;
* 써머타임 등 고려해 직접 tzinfo의 서브클래스를 작성 토록되어있지만(tzinfo는 추상클래스다) utc+9:00(서울 ) 등등 대부분의 간단한 경우를 나타내기 위해 이미 만들어져있는 timezone class를 사용할 수 있다.  &lt;br /&gt;
참고: https://spoqa.github.io/2019/02/15/python-timezone.html&lt;br /&gt;
&lt;br /&gt;
```python&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; from datetime import datetime,  timedelta, tzinfo, timezone&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; datetime.utcnow()&lt;br /&gt;
datetime.datetime(2019, 8, 14, 21, 12, 22, 857347) # 영국 그리니치의 현재시간을 표시하고있기는 하지만 tzinfo=None으로, 세계시간 aware 하지는 않다.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; datetime.now(timezone.utc)&lt;br /&gt;
datetime.datetime(2019, 8, 14, 21, 14, 17, 112890, tzinfo=datetime.timezone.utc) # 세계시간 aware한 세계표준시&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; seoulnow = datetime.now(timezone(timedelta(hours=9))) # utc+9:00 (서울표준시)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; seoulnow&lt;br /&gt;
datetime.datetime(2019, 8, 15, 6, 18, 34, 177299, tzinfo=datetime.timezone(datetime.timedelta(0, 32400)))&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; seoulnow.utcoffset()&lt;br /&gt;
datetime.timedelta(0, 32400) # 세계표준시와 시차&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; seoulnow.tzname()&lt;br /&gt;
'UTC+09:00' # 타임존 이름보기&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; seoulnow.astimezone(timezone(timedelta(hours=-4))) # 같은 시간을 뉴욕표준시(utc-4:00)로 표현하면?  &lt;br /&gt;
datetime.datetime(2019, 8, 14, 17, 18, 34, 177299, tzinfo=datetime.timezone(datetime.timedelta(-1, 72000)))&lt;br /&gt;
```&lt;/div&gt;</summary>
		<author><name>Doguin</name></author>	</entry>

	</feed>