파이썬에서 날짜와 시간을 조작하기 위해 datetime이라는 모듈이 있습니다. 날짜 및 시간 개체에는 두 가지 유형이 있습니다. 유형은 순진하고 의식이 있습니다.
나이브 객체에는 다른 날짜-시간 객체에서 이 객체를 명확하게 찾을 수 있는 정보가 충분하지 않습니다. 이 접근 방식에서는 협정 세계시(UTC)를 사용합니다.
인식 유형 개체에는 알고리즘 및 정치적 시간 조정에 관한 다양한 정보가 있습니다. 이 유형의 개체는 특정 시간을 나타내는 데 사용됩니다.
이 모듈을 사용하려면 −
를 사용하여 가져와야 합니다.날짜/시간 가져오기
이 모듈에는 다양한 클래스, 상수 및 메서드가 있습니다.
상수는 -
시니어 번호 | 상수 및 설명 |
---|---|
1 | datetime.MINYEAR 날짜 또는 날짜/시간 개체로 적용할 수 있는 가장 작은 연도 숫자입니다. 값은 0입니다. |
2 | 날짜/시간.MAXYEAR 날짜 또는 날짜/시간 개체로 적용할 수 있는 가장 큰 연도 숫자입니다. 값은 9999입니다. |
사용 가능한 데이터 유형은 -
시니어 번호 | 데이터 유형 및 설명 |
---|---|
1 | 날짜 날짜 유형 객체입니다. 그것은 그레고리력을 사용합니다. 년, 월, 일 속성이 있습니다. |
2 | 시간 시간 객체 클래스입니다. 특정 날짜와 무관합니다. 시간, 분, 초, 마이크로초 및 tzinfo 속성이 있습니다. |
3 | 날짜/시간 날짜와 시간이 결합된 집합입니다. |
4 | 타임델타 두 날짜, 시간 또는 날짜/시간 값의 차이를 밀리초 단위로 표현하는 데 사용됩니다. |
5 | tzinfo 추상 베이스 클래스입니다. 시간대 정보를 보유하고 있습니다. datetime 및 time 클래스에서 사용됩니다. |
6 | 시간대 이 클래스에서는 tzinfo를 구현합니다. UTC에서 고정 오프셋이 있습니다. |
날짜 유형 개체
날짜 개체는 날짜를 나타냅니다. 날짜에는 일, 월 및 연도 부분이 있습니다. 그것은 그레고리력을 사용합니다. 이 달력에 따르면 1년 1월 1일은 1일이라고 하는 식으로 계속됩니다.
일부 날짜 관련 방법은 -
메서드 date.date(년, 월, 일)
날짜형 객체를 생성하기 위한 생성자입니다. 날짜를 생성하려면 모든 인수가 정수형 데이터로 필요합니다. 연도는 MINYEAR 및 MAXYEAR 범위에 있어야 합니다. 주어진 날짜가 유효하지 않으면 ValueError가 발생합니다.
메서드 date.today()
이 메서드는 현재 현지 날짜를 반환하는 데 사용됩니다.
메서드 date.fromtimestamp(timestamp)
이 메서드는 POSIX 타임스탬프에서 날짜를 가져오는 데 사용됩니다. 타임스탬프 값이 범위를 벗어나면 OverflowError가 발생합니다.
메서드 날짜.fromordinal(서수)
이 방법은 역산 그레고리력 서수에서 날짜를 가져오는 데 사용됩니다. 연도 1의 1월 1일부터 날짜 계산에서 날짜를 가져오는 데 사용됩니다.
메서드 date.toordinal()
이 메서드는 역산 그레고리력 서수로 날짜를 반환하는 데 사용됩니다.
메서드 date.weekday()
이 메서드는 날짜에서 요일을 정수로 반환하는 데 사용됩니다. 월요일은 0, 화요일은 1 등입니다.
메서드 date.isoformat()
이 메서드는 날짜를 ISO 8601 형식 문자열로 반환하는 데 사용됩니다. 형식은 YYYY-MM-DD입니다.
예시 코드
import datetime as dtnew_date =dt.date(1998, 9, 5) #Store date 1998년 9월 5일print("날짜는:" + str(new_date))print("주어진 날짜의 서수 값:" + str (new_date.toordinal()))print("주어진 날짜의 요일:" + str(new_date.weekday())) #Monday is 0my_date =dt.date.fromordinal(732698) #서수 값에서 날짜 생성 .print("서수의 날짜:" + str(my_date))td =my_date - new_date #timedelta 객체 생성print('td Type:' + str(type(td)) + '\nDifference:' + str( td))
출력
날짜:1998-09-05주어진 날짜의 서수 값:729637주어진 날짜의 요일:5서수에서 날짜:2007-01-22td 유형:차이:3061일, 0:00:00
시간 개체
time 객체는 현지 시간을 나타냅니다. 시간에는 시, 분초, 마이크로초, tzinfo 부분이 있습니다. 시간 범위는 0~24, 분과 초는 0~60, 마이크로초는 0~1000000입니다.
일부 시간 관련 방법은
메서드 time.fromisoformat(time_string)
이 메서드는 ISO 8601 문자열에서 시간을 가져오는 데 사용됩니다. time.isoformat() 메서드의 모든 출력을 사용할 수 있습니다.
방법 time.replace(시간 =self.hour, 분 =self.minute, 초 =self.second, 마이크로초 =self.microseconds, tzinfo =self.tzinfo, *fold=0)
이 메서드는 인수에서 값을 가져와 시간을 반환하는 데 사용됩니다. 인수가 전달되지 않으면 같은 시간 개체 값을 반환합니다.
메서드 time.tzname()
이 메서드는 시간대의 이름을 반환하는 데 사용됩니다. tzinfo가 None이면 None을 반환합니다.
날짜/시간 개체
datetime 객체는 날짜와 시간을 모두 보유합니다. 날짜 객체로 그레고리력을 지원하고 Time 객체로 정확히 3600*24초를 요일에 저장합니다.
모든 날짜 및 시간 관련 메서드를 지원하며 일부 메서드는 datetime에도 존재합니다. 다음과 같습니다 -
메서드 datetime.now(tz=None)
이 메서드는 현재 날짜와 시간을 가져오는 데 사용됩니다. tz가 없거나 None이면 오늘() 메서드와 같이 날짜를 반환합니다.
메서드 datetime.utcnow()
이 메소드는 현재 UTC 날짜 및 시간 관련 정보를 가져오는 데 사용됩니다.
strftime() 및 strptime()이라는 또 다른 두 가지 메서드가 있습니다. 이러한 메서드는 날짜 및 시간 개체와 날짜/시간 개체 모두에 적용할 수 있습니다.
메서드 datetime.strftime(format[, t])
strftime() 메서드는 gmtime() 또는 localtime()에 의해 반환된 시간을 나타내는 튜플 또는 struct_time을 format 인수에 지정된 문자열로 변환합니다. t가 제공되지 않으면 localtime()에서 반환된 현재 시간이 사용됩니다. 형식은 문자열이어야 합니다. t의 필드가 허용 범위를 벗어나면 예외 ValueError가 발생합니다.
메서드 datetime.strftime(format[, t])
strptime() 메서드는 형식에 따라 시간을 나타내는 문자열을 구문 분석합니다. 반환 값은 gmtime() 또는 localtime()에 의해 반환된 struct_time입니다. format 매개변수는 strftime()에서 사용하는 것과 동일한 지시문을 사용합니다. ctime()에서 반환된 형식과 일치하는 "%a %b %d %H:%M:%S %Y"로 기본 설정됩니다.
이 두 가지 방법은 일부 지시문을 사용합니다. 그 중 일부는 아래에 나열되어 있습니다 -
시니어 번호 | 지시 및 설명 |
---|---|
1 | %A 전체 요일 이름 |
2 | %B 전체 월 이름 |
3 | %d 날짜(0 ~ 31) |
4 | %S 두 번째 |
5 | %G ISO 주 번호에 해당하는 4자리 연도 |
6 | %m 월(1 ~ 12) |
7 | %M 분 |
8 | %T 현재 시간, %H:%M:%S 와 동일 |
9 | %W 첫 번째 월요일을 첫 번째 주의 첫 요일로 시작하는 현재 연도의 주 번호 |
10 | %w 요일(소수점), Sunday=0 |
11 | %Y 세기를 포함한 연도 |
12 | %Z 또는 %z 시간대 또는 이름 또는 약어 |
예시 코드
import datetime as dtmy_date1 =dt.datetime(2015, 1, 4) #날짜 저장 2015년 1월 4일print(my_date1)print('당일의 요일은 ' + my_date1.strftime('%A') )my_date2 =dt.datetime.strptime('August-15-2017', '%B-%d-%Y') #2017년 8월 15일 날짜 저장print(my_date2)print('그날의 요일은 ' + my_date2.strftime('%A'))print('2일 간의 차이:' + str(abs(my_date1 - my_date2)))
출력
2015-01-04 00:00:00당일 평일:Sunday2017-08-15 00:00:00당일 평일:화요일 이틀 간의 차이:954일 0:00:00사전>