English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 문서에서는 예제를 통해 Python에서 날짜와 시간을 처리하는 방법을 배우게 됩니다.
Python에datetime이 모듈은 날짜와 시간을 처리하는 데 사용됩니다. 더 깊이 배우기 전에 날짜와 시간과 관련된 간단한 프로그램을 만들어 보겠습니다.
import datetime datetime_object = datetime.datetime.now() print(datetime_object)
프로그램을 실행할 때, 출력은 다음과 같을 것입니다:
2020-04-13 17:09:49.015911
여기서는 import datetime 문장을 통해 datetime 모듈을 가져왔습니다.datetime모듈
datetime 모듈에 정의된 클래스 중 하나는 datetime 클래스입니다. 그런 다음, now() 메서드를 사용하여 현재 로컬 날짜와 시간을 포함한 datetime 객체를 생성합니다.
import datetime date_object = datetime.date.today() print(date_object)
프로그램을 실행할 때, 출력은 다음과 같을 것입니다:
2020-04-13
이 프로그램에서는 date 클래스에 정의된 today() 메서드를 사용하여 현재 로컬 날짜를 포함한 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 클래스
time 클래스
datetime 클래스
timedelta 클래스
date 클래스를 사용하여 date 객체를 예제화할 수 있습니다. date 객체는 날짜(연, 월, 일)를 나타냅니다.
import datetime d = datetime.date(2019, 4, 13:", s print(d)
프로그램을 실행할 때, 출력은 다음과 같습니다:
2019-04-13
그렇다면, 위 예제의 date()는 date 클래스의 생성자입니다. 생성자는 연, 월, 일 세 가지 매개변수를 가집니다.
변수a은 date 객체입니다.
우리는 datetime 모듈에서 date 클래스를 가져올 수 있습니다. 이렇게 됩니다:
from datetime import date a = date(2019, 4, 13:", s print(a)
today()라는 클래스 메서드를 사용하여 현재 날짜를 포함한 date 객체를 생성할 수 있습니다. 방법은 다음과 같습니다:
from datetime import date today = date.today() print("현재 날짜 =", today)
우리는 타임스탬프에서 날짜 객체를 생성할 수도 있습니다. Unix 타임스탬프는 특정 날짜에서 UTC로의1970년1월1일 사이의 초 수. fromtimestamp() 메서드를 사용하여 타임스탬프를 날짜로 변환할 수 있습니다.
from datetime import date timestamp = date.fromtimestamp(1576244364:", s print("날짜 =", timestamp)
프로그램을 실행할 때, 출력은 다음과 같습니다:
날짜 = 2019-12-13
날짜 객체에서 연, 월, 일, 요일 등을 쉽게 가져올 수 있습니다. 그렇습니다:
from datetime import date # 오늘의 날짜 객체 today = date.today() print("현재 연:", today.year) print("현재 월:", today.month) print("현재 일:", 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:", s print("b =", b) # time(hour, minute and second) c = time(hour = 11, minute = 34, second = 56:", s print("c =", c) # time(hour, minute, second, microsecond) d = time(11, 34, 56, 234566:", s 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:", s print("시간=", a.hour) print("분=", a.minute) print("초=", a.second) print("マイ크로초=", a.microsecond)
실행 예제에서 출력은 다음과 같습니다:
시간= 11 분= 34 초= 56 マイ크로초= 0
주의하세요, 우리는 아직マイ크로초파라미터. 따라서 기본 값 0을 출력합니다.
datetime 모듈에는 dateclass 클래스가 있으며, 다음과 같은 값을 포함할 수 있습니다:date과time객체의 정보。
from datetime import datetime #datetime(year, month, day) a = datetime(2019, 11, 28:", s print(a) # datetime(year, month, day, hour, minute, second, microsecond) b = datetime(2019, 11, 28, 23, 55, 59, 342380) print(b)
프로그램을 실행할 때, 출력은 다음과 같습니다:
2019-11-28 00:00:00 2019-11-28 23:55:59.342380
datetime()构造函数中的前三个参数year、month和day是必需的。
from datetime import datetime a = datetime(2019, 12, 28, 23, 55, 59, 342380) print("年 = ", a.year) print("月 = ", a.month) print("日 = ", a.day) print("时 = ", a.hour) print("份 = ", a.minute) print("时间戳 = ", a.timestamp())
프로그램을 실행할 때, 출력은 다음과 같습니다:
年 = 2019 月 = 12 日 = 28 时 = 23 份 = 55 时间戳 = 1577548559.34238
timedelta对象表示两个日期或时间之间的时差。
from datetime import datetime, date t1 = date(year = 2018, month = 7, day = 12:", s t2 = date(year = 2017, month = 12, day = 23:", s t3 = t1 - t2 print("t3 = ", t3:", s t4 = datetime(year = 2018, month = 7, day = 12, hour = 7, minute = 9, second = 33:", s t5 = datetime(year = 2019, month = 6, day = 10, hour = 5, minute = 55, second = 13:", s t6 = t4 - t5 print("t6 = ", t6:", s 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 = 5hours = 1, seconds = 33:", s t2 = timedelta(days = 4hours = 11, minutes = 4, seconds = 54:", s t3 = t1 - t2 print("t3 = ", t3:", s
프로그램을 실행할 때, 출력은 다음과 같습니다:
t3 = 14 days, 13:55:39
在这里,我们创建了两个timedelta对象t1과t2,它们直接相差的天数被打印在屏幕上。
from datetime import timedelta t1 = timedelta(seconds = 33:", s t2 = timedelta(seconds = 54:", s t3 = t1 - t2 print("t3 = ", t3:", s print("t3 = ", abs(t3))
프로그램을 실행할 때, 출력은 다음과 같습니다:
t3 = -1 day, 23:59:39 t3 = 0:00:21
您可以使用total_seconds()方法获得timedelta对象中的总秒数。
from datetime import timedelta t = timedelta(days = 5hours = 1, seconds = 33, microseconds = 233423:", s , seconds =
프로그램을 실행할 때, 출력은 다음과 같습니다:
, microseconds = 435633.233423
print("total seconds =", t.total_seconds())+total seconds =
Python에서 날짜와 시간을 포맷팅 / # mm / 날짜와 시간의 표현 방식은 다양한 곳, 조직 등에서 다를 수 있습니다. 미국에서는 mm을 사용합니다. / # dd / yyyy가 더 일반적이며 영국에서는 dd를 사용합니다.
yyyy가 더 일반적입니다.
문자열 날짜와 시간 객체
from datetime import datetime :strftime()로 날짜 형식화 사용 # current date and time now = datetime.now() t = now.strftime("%H:%M:%S") s1 print("time:", t)/%d/= now.strftime("%d = now.strftime("%m/# mm/mm YY H:M:S 형식1print("s1:", s s2 dd/%m/= now.strftime("%d %Y, %H:%M:%S")/# dd/mm YY H:M:S 형식2print("s2:", s
프로그램을 실행할 때, 출력은 다음과 같을 것입니다:
)4:34:52 s1: 12/26/2018time: 04:34:52 s2: 26/12/2018time: 04:34:52
, 0
위의 프로그램에서는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 형식 코드가 일, 월(전체 이름), 연을 나타냅니다.
방문Python strptime()자세한 정보를 알아보세요.
프로젝트를 처리하면서 해당 시간대에 따라 날짜와 시간을 표시해야 하는 경우를 가정합니다. 우리는 제3자의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"))
프로그램을 실행할 때, 출력은 다음과 같을 것입니다:
로컬 시간: 2018-12-20 13:10:44.260462 America/New_York 시간: 2018-12-20 13:10:44.260462 Europe/London 시간: 2018-12-20 13:10:44.260462
여기서datetime_NY과datetime_London현재 시간과 날짜를 포함한 각 지역 시간을 가진 datetime 객체입니다。