Python 프로그램은 다양한 방법으로 날짜와 시간을 처리할 수 있습니다. 날짜 형식을 변환하는 것은 일반적인 일상적인 작업입니다. Python에는 도움이 될 수 있는 시간 및 달력 모듈이 있습니다.
틱이란?
시간 간격은 초 단위의 부동 소수점 분수입니다.
각 타임스탬프는 1970년 1월 1일 자정(epoch) 이후 얼마나 시간이 지났는지를 표현합니다.
Python과 함께 제공되는 인기 있는 time 모듈에는 일반적인 날짜 형식을 변환하는 많은 함수가 있습니다. 예를 들어, time.time() 함수는 다음 예제와 같이 틱을 사용하여 1970년 1월 1일 오전 12시(epoch)부터 기록된 현재 운영 체제 시간을 반환합니다.
#!/usr/bin/python
import time # 시간 모듈을 포함해야 합니다.
ticks = time.time()
인쇄 "1970년 1월 1일 오전 12시 이후의 틱 수:", 진드기
위 예의 출력 결과:
1970년 1월 1일 오전 12시 이후의 틱 수: 7186862.73399
날짜 계산에는 진드기 단위가 가장 적합합니다. 그러나 1970년 이전 날짜는 이런 식으로 표현할 수 없습니다. 너무 먼 날짜는 작동하지 않습니다. UNIX 및 Windows는 2038년 날짜만 지원합니다.
시간 튜플이란 무엇인가요?
많은 Python 함수는 하나의 요소를 사용하여 9개의 숫자 그룹을 조합합니다. 처리 시간:
일련 번호
필드
값
0 4자리 연도 2008
1개월 1~12
2일 1~31
3시간 0~ 23
4분
5초 0~61(60 또는 61은 윤초)
6 요일 0~6(0은 월요일)
1~366년(율리우스력)의 7일
8 Daylight Saving Time -1, 0, 1, -1은 일광 절약 시간 여부를 판별하는 플래그
< ;td0 to 59< td="">
위는 struct_time 튜플입니다. 이 구조에는 다음 속성이 있습니다.
일련 번호
속성
값
0 tm_year 2008
1 tm_mon 1~12 tm_mday 1~31 tm_hour 0~23 tm_min 0~59
5 tm_sec 0~61(60 또는 61은 윤초)
6 tm_wday 0 ~ 6(0은 월요일)
7 tm_yday 1 ~ 366(율리우스력)
8 tm_isdst -1, 0, 1, -1은 일광인지 여부를 결정하는 플래그입니다. 시간 절약
현재 시간 가져오기
수시로 부동 소수점 숫자를 반환합니다. 튜플 변환, 부동 소수점 숫자를 localtime과 같은 함수에 전달하기만 하면 됩니다.
#!/usr/bin/python
가져오기 시간;
localtime = 시간 .localtime(time.time())
print "현지 현재 시간:", localtime
위의 예 출력 결과:
현지 현재 시간: time.struct_time(tm_year=2013, tm_mon=7,
tm_mday=17, tm_hour=21 , tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, tm_isdst=0)
형식화된 시간 가져오기
필요에 따라 다양한 형식을 선택할 수 있지만, 읽을 수 있는 시간 패턴을 얻는 가장 간단한 기능은 asctime()입니다:
#! /usr/bin/python
시간 가져오기;
localtime = time.asctime( time.localtime(time.time()))
print "Local current time:", localtime
위 예의 출력 결과:
현지 시간 : Tue Jan 13 10:17:09 2009
특정 일정 가져오기 월
달력 모듈에는 특정 달의 월별 달력을 인쇄하는 등 연간 및 월별 달력을 처리하는 다양한 방법이 있습니다.
#!/usr/bin /python
캘린더 가져오기
cal = Calendar.month(2008, 1)
print "여기는 다음과 같습니다. the Calendar:"
print cal;
위 예의 출력 결과:
달력은 다음과 같습니다.
2008년 1월
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
시간 모듈
시간 모듈에는 시간 처리 및 시간 형식 변환을 위한 다음 내장 함수가 포함되어 있습니다.
일련 번호
기능 및 설명
1 time.altzone
은 그리니치 오프셋 서쪽의 일광 절약 시간대를 반환합니다. 초. 해당 지역이 그리니치 동쪽(예: 영국을 포함한 서유럽)인 경우 음수 값이 반환됩니다. 일광 절약 시간이 활성화된 지역에서만 사용할 수 있습니다.
2 time.asctime([tupletime])
시간 튜플을 승인하고 "Tue Dec 11 18:07:14 2008"(2008년 12월 11일 화요일 18시간 07분)이라는 읽을 수 있는 형식을 반환합니다. 14초) 24자 문자열입니다.
3 time.clock( )
현재 CPU 시간을 부동 소수점 숫자로 계산하여 초 단위로 반환합니다. 다양한 프로그램의 시간 소비를 측정하는 데 사용되며 time.time()보다 더 유용합니다.
4 time.ctime([초])
은 asctime(localtime(secs))과 동일합니다. 매개변수가 제공되지 않으며 이는 asctime()
5시간과 동일합니다. gmtime([secs ])
타임아웃(1970년 이후 경과된 부동 소수점 초 수)을 수신하고 그리니치 천문시로 시간 튜플 t를 반환합니다. 참고: t.tm_isdst는 항상 0입니다
6 time.localtime([secs])
는 시간 초과(1970년 이후 경과된 부동 소수점 초 수)를 수신하고 시간 튜플 t를 로컬로 반환합니다. 시간(t.tm_isdst는 현지 시간이 일광 절약 시간인지 여부에 따라 0 또는 1일 수 있습니다).
7 time.mktime(tupletime)
시간 튜플을 허용하고 시간(1970년 에포크 이후 경과된 부동 소수점 초 수)을 반환합니다.
8 time.sleep(초)
호출 스레드의 실행을 지연합니다. secs는 초 수를 나타냅니다.
9 time.strftime(fmt[,tupletime])
시간 튜플을 수신하고 읽을 수 있는 문자열로 표현된 현지 시간을 반환합니다. 형식은 fmt에 의해 결정됩니다.
10 time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
다음 형식에 따라 시간 문자열을 시간 요소로 구문 분석합니다. fmt 그룹.
11 time.time( )
현재 시간(1970년 에포크 이후 경과된 부동 소수점 초 수)의 타임스탬프를 반환합니다.
12 time.tzset()
환경 변수 TZ에 따라 시간 관련 설정을 다시 초기화합니다.
시간 모듈에는 다음과 같은 2가지 매우 중요한 속성이 포함되어 있습니다.
일련 번호
속성 및 설명
1 time.timezone
time.timezone 속성은 그리니치(>0, America;<=0 대부분의 유럽, 아시아, 아프리카)를 기준으로 한 현지 시간대(일광 절약 시간 제외)의 오프셋 초입니다.
2 time.tzname
time.tzname 속성에는 상황에 따라 달라지는 문자열 쌍(일광 절약 시간이 있거나 없는 현지 시간대 이름)이 포함되어 있습니다.
캘린더 모듈
이 모듈의 기능은 특정 달의 캐릭터 캘린더를 인쇄하는 등 모두 캘린더와 관련된 기능입니다.
월요일이 기본적으로 한 주의 첫날이고, 일요일이 기본 마지막 요일입니다. 설정을 변경하려면 Calendar.setfirstweekday() 함수를 호출해야 합니다. 모듈에는 다음 내장 기능이 포함되어 있습니다.
일련 번호
기능 및 설명
1 Calendar.calendar( year,w= 2,l=1,c=6)
한 줄에 3개월이 포함된 여러 줄 문자열 형식의 연도 달력을 반환하며 간격은 c입니다. 일일 너비 간격은 w자입니다. 각 줄의 길이는 21* W+18+2* C입니다. l은 주당 라인 수입니다.
2 Calendar.firstweekday( )
현재 주간 시작일 설정을 반환합니다. 기본적으로 caendar 모듈이 처음 로드될 때(월요일) 0이 반환됩니다.
3 Calendar.isleap(year)
은 윤년이면 True를 반환하고, 윤년이면 False를 반환합니다.
4 Calendar.leapdays(y1,y2)
Y1과 Y2 사이의 총 윤년 수를 반환합니다.
5 Calendar.month(year,month,w=2,l=1)
제목 두 줄과 각 주에 대한 한 줄이 포함된 여러 줄 문자열 형식의 연도 및 월 달력을 반환합니다. . 일일 너비 간격은 w자입니다. 각 줄의 길이는 7* w+6입니다. l은 주당 라인 수입니다.
6 Calendar.monthcalendar(year,month)
는 단일 수준 중첩 정수 목록을 반환합니다. 각 하위 목록에는 주를 나타내는 정수가 포함됩니다. 연도, 월, 월 이외의 날짜는 모두 0으로 설정되며, 범위 내의 날짜는 1부터 시작하여 해당 월의 날짜로 표시됩니다.
7 Calendar.monthrange(year,month)
는 두 개의 정수를 반환합니다. 첫 번째는 해당 월의 요일의 날짜 코드이고, 두 번째는 해당 월의 요일 코드입니다. 일 범위는 0(월요일)부터 6(일요일)까지이고, 월 범위는 1부터 12까지입니다.
8 Calendar.prcal(year,w=2,l=1,c=6)
은 Calendar.calendar(year,w,l,c) 인쇄와 동일합니다. > 9 Calendar.prmonth(year,month,w=2,l=1)
10 Calendar.setfirstweekday(weekday)
각 주의 시작 요일 코드를 설정합니다. 0(월요일) ~ 6(일요일).
11 Calendar.timegm(tupletime)
은 time.gmtime과 반대입니다. 시간 튜플 형식을 허용하고 해당 순간의 시간을 반환합니다(1970년 에포크 이후 경과된 부동 소수점 초 수). .
12 Calendar.weekday(year,month,day)
주어진 날짜의 날짜 코드를 반환합니다. 0(월요일) ~ 6(일요일). 월 범위는 1(1월)부터 12(12월)까지입니다.