python
이 기사에서는 예제를 통해 Python에서 날짜와 시간을 조작하는 방법을 배웁니다.
Python에는 datetime이라는 모듈이 있습니다. 날짜와 시간으로 작업합니다. 자세히 알아보기 전에 날짜 및 시간과 관련된 몇 가지 간단한 프로그램을 만들어 보겠습니다.
<시간>
import datetime
datetime_object = datetime.datetime.now()
print(datetime_object)
프로그램을 실행하면 다음과 같이 출력됩니다.
2018-12-19 09:26:03.478039
여기에서 날짜/시간을 가져왔습니다. import datetime
을(를) 사용하는 모듈 성명서.
datetime
에 정의된 클래스 중 하나 모듈은 datetime
입니다. 수업. 그런 다음 now()
을 사용했습니다. datetime
를 생성하는 메소드 현재 현지 날짜 및 시간을 포함하는 개체입니다.
import datetime
date_object = datetime.date.today()
print(date_object)
프로그램을 실행하면 다음과 같이 출력됩니다.
2018-12-19
이 프로그램에서는 today()
을 사용했습니다. date
에 정의된 메소드 date
을 얻기 위한 클래스 현재 현지 날짜를 포함하는 개체입니다.
datetime 내부에는 무엇이 있습니까?
dir() 함수를 사용하여 모듈의 모든 속성을 포함하는 목록을 얻을 수 있습니다.
import datetime
print(dir(datetime))
프로그램을 실행하면 다음과 같이 출력됩니다.
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']<시간>
datetime 모듈에서 일반적으로 사용되는 클래스는 다음과 같습니다.
date
를 인스턴스화할 수 있습니다. date
의 개체 수업. 날짜 개체는 날짜(년, 월, 일)를 나타냅니다.
import datetime
d = datetime.date(2019, 4, 13)
print(d)
프로그램을 실행하면 다음과 같이 출력됩니다.
2019-04-13
궁금하시다면 date()
위의 예에서 date
의 생성자는 수업. 생성자는 연도, 월, 일의 세 가지 인수를 사용합니다.
변수 a date
입니다. 개체.
date
만 가져올 수 있습니다. datetime
의 클래스 기준 치수. 방법은 다음과 같습니다.
from datetime import date
a = date(2019, 4, 13)
print(a)
<시간>
date
을 만들 수 있습니다. today()
라는 클래스 메서드를 사용하여 현재 날짜를 포함하는 객체 . 방법은 다음과 같습니다.
from datetime import date
today = date.today()
print("Current date =", today)
<시간>
date
도 생성할 수 있습니다. 타임 스탬프의 객체. Unix 타임스탬프는 UTC에서 특정 날짜와 1970년 1월 1일 사이의 초 수입니다. fromtimestamp()
를 사용하여 타임스탬프를 날짜로 변환할 수 있습니다. 방법.
from datetime import date
timestamp = date.fromtimestamp(1326244364)
print("Date =", timestamp)
프로그램을 실행하면 다음과 같이 출력됩니다.
Date = 2012-01-11<시간>
날짜 객체에서 년, 월, 일, 요일 등을 쉽게 얻을 수 있습니다. 방법은 다음과 같습니다.
from datetime import date
# date object of today's date
today = date.today()
print("Current year:", today.year)
print("Current month:", today.month)
print("Current day:", today.day)
<시간>
time
에서 인스턴스화된 시간 개체 클래스는 현지 시간을 나타냅니다.
from datetime import time
# time(hour = 0, minute = 0, second = 0)
a = time()
print("a =", a)
# time(hour, minute and second)
b = time(11, 34, 56)
print("b =", b)
# time(hour, minute and second)
c = time(hour = 11, minute = 34, second = 56)
print("c =", c)
# time(hour, minute, second, microsecond)
d = time(11, 34, 56, 234566)
print("d =", d)
프로그램을 실행하면 다음과 같이 출력됩니다.
a = 00:00:00 b = 11:34:56 c = 11:34:56 d = 11:34:56.234566<시간>
time
을 생성하면 개체를 사용하면 시간과 같은 속성을 쉽게 인쇄할 수 있습니다. , 분 등
from datetime import time
a = time(11, 34, 56)
print("hour =", a.hour)
print("minute =", a.minute)
print("second =", a.second)
print("microsecond =", a.microsecond)
예제를 실행하면 출력은 다음과 같습니다.
hour = 11 minute = 34 second = 56 microsecond = 0
마이크로초를 넘지 않았습니다. 논쟁. 따라서 기본값 0
인쇄됩니다.
datetime
모듈에 dateclass
라는 클래스가 있습니다. 날짜의 정보를 모두 포함할 수 있음 및 시간 개체.
from datetime import datetime
#datetime(year, month, day)
a = datetime(2018, 11, 28)
print(a)
# datetime(year, month, day, hour, minute, second, microsecond)
b = datetime(2017, 11, 28, 23, 55, 59, 342380)
print(b)
프로그램을 실행하면 다음과 같이 출력됩니다.
2018-11-28 00:00:00 2017-11-28 23:55:59.342380
처음 세 개의 인수 연도 , 월 및 일 datetime()
생성자는 필수입니다.
from datetime import datetime
a = datetime(2017, 11, 28, 23, 55, 59, 342380)
print("year =", a.year)
print("month =", a.month)
print("hour =", a.hour)
print("minute =", a.minute)
print("timestamp =", a.timestamp())
프로그램을 실행하면 다음과 같이 출력됩니다.
year = 2017 month = 11 day = 28 hour = 23 minute = 55 timestamp = 1511913359.34238<시간>
timedelta
개체는 두 날짜 또는 시간의 차이를 나타냅니다.
from datetime import datetime, date
t1 = date(year = 2018, month = 7, day = 12)
t2 = date(year = 2017, month = 12, day = 23)
t3 = t1 - t2
print("t3 =", t3)
t4 = datetime(year = 2018, month = 7, day = 12, hour = 7, minute = 9, second = 33)
t5 = datetime(year = 2019, month = 6, day = 10, hour = 5, minute = 55, second = 13)
t6 = t4 - t5
print("t6 =", t6)
print("type of t3 =", type(t3))
print("type of t6 =", type(t6))
프로그램을 실행하면 다음과 같이 출력됩니다.
t3 = 201 days, 0:00:00 t6 = -333 days, 1:14:20 type of t3 = <class 'datetime.timedelta'> type of t6 = <class 'datetime.timedelta'>
t3 및 t6 <class 'datetime.timedelta'>
유형.
from datetime import timedelta
t1 = timedelta(weeks = 2, days = 5, hours = 1, seconds = 33)
t2 = timedelta(days = 4, hours = 11, minutes = 4, seconds = 54)
t3 = t1 - t2
print("t3 =", t3)
프로그램을 실행하면 다음과 같이 출력됩니다.
t3 = 14 days, 13:55:39
여기에서 두 개의 timedelta
을 만들었습니다. 개체 t1 및 t2 , 그리고 그 차이가 화면에 출력됩니다.
from datetime import timedelta
t1 = timedelta(seconds = 33)
t2 = timedelta(seconds = 54)
t3 = t1 - t2
print("t3 =", t3)
print("t3 =", abs(t3))
프로그램을 실행하면 다음과 같이 출력됩니다.
t3 = -1 day, 23:59:39 t3 = 0:00:21<시간>
total_seconds()
을 사용하여 timedelta 객체의 총 시간(초)을 얻을 수 있습니다. 방법.
from datetime import timedelta
t = timedelta(days = 5, hours = 1, seconds = 33, microseconds = 233423)
print("total seconds =", t.total_seconds())
프로그램을 실행하면 다음과 같이 출력됩니다.
total seconds = 435633.233423<시간>
+
를 사용하여 두 날짜와 시간의 합을 찾을 수도 있습니다. 운영자. 또한 timedelta
를 곱하고 나눌 수 있습니다. 정수 및 부동 소수점으로 개체.
날짜와 시간이 표시되는 방식은 장소, 조직 등에 따라 다를 수 있습니다. mm/dd/yyyy
을 사용하는 것이 더 일반적입니다. 미국에서는 dd/mm/yyyy
영국에서 더 일반적입니다.
파이썬에는 strftime()
가 있습니다. 및 strptime()
이를 처리하는 방법.
strftime()
메소드는 date
클래스에 정의되어 있습니다. , datetime
및 time
. 이 메서드는 지정된 date
에서 형식이 지정된 문자열을 생성합니다. , datetime
또는 time
개체.
from datetime import datetime
# current date and time
now = datetime.now()
t = now.strftime("%H:%M:%S")
print("time:", t)
s1 = now.strftime("%m/%d/%Y, %H:%M:%S")
# mm/dd/YY H:M:S format
print("s1:", s1)
s2 = now.strftime("%d/%m/%Y, %H:%M:%S")
# dd/mm/YY H:M:S format
print("s2:", s2)
프로그램을 실행하면 다음과 같이 출력됩니다.
time: 04:34:52 s1: 12/26/2018, 04:34:52 s2: 26/12/2018, 04:34:52
여기, %Y
, %m
, %d
, %H
등은 형식 코드입니다. strftime()
메서드는 하나 이상의 형식 코드를 사용하고 이를 기반으로 형식이 지정된 문자열을 반환합니다.
위 프로그램에서 t , s1 및 s2 문자열입니다.
%Y
- 연도 [0001,..., 2018, 2019,..., 9999]%m
- 월 [01, 02, ..., 11, 12]%d
- 일 [01, 02, ..., 30, 31]%H
- 시간 [00, 01, ..., 22, 23%M
- 분 [00, 01, ..., 58, 59]%S
- 초 [00, 01, ..., 58, 59]
strftime()
에 대해 자세히 알아보려면 및 형식 코드, 방문:Python strftime().
strptime()
메소드는 datetime
을 생성합니다. 주어진 문자열의 객체(날짜와 시간을 나타냄).
from datetime import datetime
date_string = "21 June, 2018"
print("date_string =", date_string)
date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object =", date_object)
프로그램을 실행하면 다음과 같이 출력됩니다.
date_string = 21 June, 2018 date_object = 2018-06-21 00:00:00
strptime()
메서드는 두 개의 인수를 사용합니다.
그건 그렇고, %d
, %B
및 %Y
형식 코드는 day에 사용됩니다. , 월 (전체 이름) 및 연도 각각.
자세히 알아보려면 Python strptime()을 방문하세요.
<시간>프로젝트에서 작업 중이고 해당 시간대에 따라 날짜와 시간을 표시해야 한다고 가정합니다. 시간대를 직접 처리하는 대신 타사 pytZ 모듈을 사용하는 것이 좋습니다.
from datetime import datetime
import pytz
local = datetime.now()
print("Local:", local.strftime("%m/%d/%Y, %H:%M:%S"))
tz_NY = pytz.timezone('America/New_York')
datetime_NY = datetime.now(tz_NY)
print("NY:", datetime_NY.strftime("%m/%d/%Y, %H:%M:%S"))
tz_London = pytz.timezone('Europe/London')
datetime_London = datetime.now(tz_London)
print("London:", datetime_London.strftime("%m/%d/%Y, %H:%M:%S"))
프로그램을 실행하면 다음과 같이 출력됩니다.
Local time: 2018-12-20 13:10:44.260462 America/New_York time: 2018-12-20 13:10:44.260462 Europe/London time: 2018-12-20 13:10:44.260462
여기, datetime_NY 및 datetime_London 해당 시간대의 현재 날짜와 시간을 포함하는 datetime 객체입니다.
python
Python에서 날짜, 시간 및 날짜/시간 클래스는 날짜, 시간 및 시간 간격을 처리하는 여러 기능을 제공합니다. Python의 날짜 및 날짜/시간은 객체이므로 조작할 때 실제로는 문자열이나 타임스탬프가 아니라 객체를 조작하는 것입니다. 날짜나 시간을 조작할 때마다 datetime 함수를 가져와야 합니다. Python의 datetime 클래스는 크게 5가지 클래스로 분류됩니다. date – 날짜만 조작(월, 일, 연도) 시간 – 날짜와 무관한 시간(시, 분, 초, 마이크로초) datetime – 시간과 날짜의 조합(월, 일, 년
놓치신 경우:Python 2는 2020년 1월 1일부로 공식적으로 지원되지 않음 . 아직 Python 2.7을 사용 중이라면 지금 업그레이드하세요. . 실행 중인 버전이 확실하지 않은 경우 Python 버전을 확인하세요. 많은 패키지 유지 관리자가 Python 3으로 마이그레이션했습니다. 일부는 여전히 Python 2를 지원하고 다른 일부는 이미 Python 2 지원을 중단했습니다. Python 2 코드 기반에서 마이그레이션해야 하는 경우 Python 코드를 Python 3으로 마이그레이션하는 방법에 대한 가이드를 읽어보세요.