Python 기본 입문 튜토...login
Python 기본 입문 튜토리얼
작가:php.cn  업데이트 시간:2022-04-18 16:14:50

파이썬 날짜와 시간


Python 프로그램은 다양한 방법으로 날짜와 시간을 처리할 수 있으며 날짜 형식을 변환하는 것이 일반적인 기능입니다.

Python은 날짜와 시간 형식을 지정하는 데 사용할 수 있는 시간 및 달력 모듈을 제공합니다.

시간 간격은 초 단위의 부동 소수점 분수입니다.

각 타임스탬프는 1970년 1월 1일 자정(epoch) 이후 얼마나 시간이 지났는지를 표현합니다.

Python의 시간 모듈에는 일반적인 날짜 형식을 변환할 수 있는 많은 함수가 있습니다. 예를 들어, 다음 예와 같이 time.time() 함수를 사용하여 현재 타임스탬프를 가져옵니다.


#!/usr/bin/ python
# -*- 코딩: UTF-8 -*-

import time; #시간 모듈 도입

ticks = time.time()
print "현재 타임스탬프 is:", 진드기

위의 예시 출력 결과:

현재 타임스탬프: 1459994552.51

타임스탬프 단위가 가장 적합합니다. 날짜 작업을 위해. 그러나 1970년 이전 날짜는 이런 식으로 표현할 수 없습니다. 너무 먼 날짜는 작동하지 않으며 UNIX 및 Windows는 2038년까지만 지원됩니다.



시간 튜플이란 무엇인가요?

많은 Python 함수는 하나의 튜플에서 조합된 9개의 숫자 처리 시간 그룹을 사용합니다.

序号字段
04位数年2008
11 到 12
21到31
3小时0到23
4分钟0到59
50到61 (60或61 是闰秒)
6一周的第几日0到6 (0是周一)
7一年的第几日1到366 (儒略历)
8夏令时-1, 0, 1, -1是决定是否为夏令时的旗帜

위는 struct_time 튜플입니다. 이 구조에는 다음과 같은 속성이 있습니다.

序号属性
0tm_year2008
1tm_mon1 到 12
2tm_mday1 到 31
3tm_hour0 到 23
4tm_min0 到 59
5tm_sec0 到 61 (60或61 是闰秒)
6tm_wday0到6 (0是周一)
7tm_yday1 到 366(儒略历)
8tm_isdst-1, 0, 1, -1是决定是否为夏令时的旗帜


현재 시간 가져오기

부동 소수점 숫자를 반환하는 시간 삭제 메서드를 시간 튜플로 변환하고, 부동 소수점 숫자를 localtime과 같은 함수에 전달하면 됩니다.

#!/usr/bin/python
# -*- 코딩: UTF-8 -*-

가져오기 시간

localtime = 시간. localtime(time.time())
print "The local time is :", localtime

위 출력 예의 결과:

현지 시간은 다음과 같습니다. time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=3, tm_sec=27, tm_wday=3, tm_yday=98, tm_isdst=0)


형식화된 시간 가져오기

필요에 따라 다양한 형식을 선택할 수 있지만, 읽을 수 있는 시간 패턴을 가져오는 가장 간단한 기능은 asctime():

#입니다! /usr/bin/python
# -*- 코딩: UTF-8 -*-

가져오기 시간

localtime = time.asctime( time.localtime(time.time() ) )
print "현지 시간은 :", localtime

위 예시 출력 결과:

현지 시간은 : Thu Apr 7 10:05 :21 2016

날짜 형식 지정

time 모듈의 strftime 메서드를 사용하여 날짜 형식을 지정할 수 있습니다.

time.strftime (형식[ , t])
#!/usr/bin/python
# -*- 코딩: UTF-8 -*-

가져오기 시간

# 다음으로 형식화됨 2016-03 -20 11:45:39형식
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

# Sat Mar 28 22:24:24 2016Form
print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())

으로 형식 지정 # 형식 문자열을 타임스탬프로 변환
a = "Sat Mar 28 22:24:24 2016"
print time.mktime(time.strptime(a,"%a %b %d %H:%M :% S %Y"))

위 예시 출력 결과:

2016-04-07 10:25:09
Thu Apr 07 10:25 : 2016년 9월
1459175064.0

파이썬의 시간 및 날짜 형식 기호:

  • %y 두 자리 연도 표현(00-99)

  • %Y 4자리 연도는 (000-9999)

  • %m월(01-12)

  • %d일(0)을 나타냅니다. -31)

  • %H 24시간제(0~23)

  • %I 12시간제(01~12)

  • %M분(00=59)

  • %S초(00~59)

  • %a 지역 간이 주 이름

  • %A 지역 전체 주 이름

  • %b 지역 간이 월 이름

  • %B 지역 전체 월 이름

  • %c 지역 해당 날짜 표현 및 시간 표현

  • %j 일( 001-366)

  • %p 현지 A.M. 또는 P.M.

  • %U 연도(00-53)의 주 수입니다. 일요일이 한주의 시작

  • %w 주(0~6), 일요일이 한주의 시작

  • %W 한 해의 주 수(00-53) 월요일이 주의 시작입니다

  • %x 해당 지역 날짜 표시

  • % X 해당 현지 시간 표현

  • %Z 현재 시간대의 이름

  • %% % 숫자 자체


특정 달의 달력 가져오기

캘린더 모듈에는 특정 달의 월별 달력을 인쇄하는 등 연간 및 월별 달력을 처리하는 다양한 방법이 있습니다.

# !/usr/bin/python
# -*- 코딩: UTF-8 -*-

캘린더 가져오기

cal = 캘린더. Month(2016, 1)
print "다음은 2016년 1월 달력을 출력합니다."
print cal;

위 예의 출력 결과:

다음은 2016년 1월 달력을 출력합니다.
2016년 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 19 20 21 22 23 24
25 26 27 28 29 30 31


시간 모듈

시간 모듈에는 시간 처리 및 시간 형식 변환을 위한 다음 내장 함수가 포함되어 있습니다.

< tbody >
일련번호기능 및 설명
1time.altzone
序号函数及描述
1time.altzone
返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。
2time.asctime([tupletime])
接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
3time.clock( )
用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。
4time.ctime([secs])
作用相当于asctime(localtime(secs)),未给参数相当于asctime()
5time.gmtime([secs])
接收时间辍(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0
6time.localtime([secs])
接收时间辍(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。
7time.mktime(tupletime)
接受时间元组并返回时间辍(1970纪元后经过的浮点秒数)。
8time.sleep(secs)
推迟调用线程的运行,secs指秒数。
9time.strftime(fmt[,tupletime])
接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。
10time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
根据fmt的格式把一个时间字符串解析为时间元组。
11time.time( )
返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
12time.tzset()
根据环境变量TZ重新初始化时间相关设置。
그리니치 서쪽의 일광 절약 시간대에 대한 오프셋을 초 단위로 반환합니다. 해당 지역이 그리니치 동쪽(예: 영국을 포함한 서유럽)인 경우 음수 값이 반환됩니다. 일광 절약 시간이 활성화된 지역에서만 사용할 수 있습니다.
2time.asctime([tupletime])

시간 튜플을 받아들이고 "Tue Dec 11 18 :07"과 같은 읽을 수 있는 형식을 반환합니다. :14 2008"(2008년 12월 11일 화요일 18:07:14)은 24자 문자열입니다.

3time.clock( )

부동 소수점 숫자로 계산된 현재 CPU 시간을 초 단위로 반환합니다. 다양한 프로그램의 시간 소비를 측정하는 데 사용되며 time.time()보다 더 유용합니다.
4time.ctime([secs])
序号属性及描述
1time.timezone
属性time.timezone是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;<=0大部分欧洲,亚洲,非洲)。
2time.tzname
属性time.tzname包含一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的。
이 함수는 asctime(localtime(secs))과 동일합니다. , 이는 asctime ()과 동일합니다.
5time.gmtime([secs])<🎜>수신 시간 초과(부동 소수점 초 수) 에포크 1970 이후 경과) 그리니치 천문 시간으로 시간 튜플 t를 반환합니다. 참고: t.tm_isdst는 항상 0입니다.
6time.localtime([secs])<🎜>수신 시간은 1970년 이후 만료됩니다. 포인트 초) 시간 튜플 t를 현지 시간으로 반환합니다(t.tm_isdst는 현지 시간이 일광 절약 시간인지 여부에 따라 0 또는 1일 수 있습니다).
7time.mktime(tupletime)<🎜>시간 튜플을 승인하고 시간(1970년 이후 경과된 부동 소수점 초 수)을 반환합니다. 시대) .
8time.sleep(secs)<🎜>호출 스레드의 실행을 지연합니다. secs는 초 수를 나타냅니다.
9time.strftime(fmt[,tupletime])<🎜>시간 튜플을 수신하고 읽을 수 있는 문자열을 반환합니다. 현지 시간, 형식은 다음에 의해 결정됩니다. fmt.
10time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')< 🎜>fmt 형식에 따라 시간 문자열을 시간 튜플로 구문 분석합니다.
11time.time( )<🎜>현재 시간의 타임스탬프를 반환합니다(1970년 이후 경과된 부동 소수점 초 수). .
12time.tzset()<🎜>환경 변수 TZ에 따라 시간 관련 설정을 다시 초기화합니다.
<🎜>Time 모듈에는 다음과 같은 두 가지 매우 중요한 속성이 포함되어 있습니다: <🎜>
일련번호속성 및 설명
1time.timezone<🎜>time.timezone 속성은 그리니치(>0, America;<=)를 기준으로 하는 현지 시간대(일광 절약 시간 제외)의 오프셋 초입니다. 0대부분의 유럽, 아시아, 아프리카).
2time.tzname<🎜>time.tzname 속성에는 시간에 따라 달라지는 문자 쌍이 포함됩니다. 상황 문자열은 일광 절약 시간이 있거나 없는 현지 시간대 이름입니다.


캘린더 모듈

이 모듈의 기능은 특정 달의 캐릭터 달력을 인쇄하는 등 모두 달력과 관련된 기능입니다.

월요일이 기본적으로 한 주의 첫날이고, 일요일이 기본 마지막 요일입니다. 설정을 변경하려면 Calendar.setfirstweekday() 함수를 호출해야 합니다. 모듈에는 다음과 같은 내장 함수가 포함되어 있습니다.

< th style=" width:95%">기능 및 설명
일련 번호
1calendar.calendar(year,w=2,l= 1,c= 6)
序号函数及描述
1calendar.calendar(year,w=2,l=1,c=6)
返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
2calendar.firstweekday( )
返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。
3calendar.isleap(year)
是闰年返回True,否则为false。
4calendar.leapdays(y1,y2)
返回在Y1,Y2两年之间的闰年总数。
5calendar.month(year,month,w=2,l=1)
返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
6calendar.monthcalendar(year,month)
返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。
7calendar.monthrange(year,month)
返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。
8calendar.prcal(year,w=2,l=1,c=6)
相当于 print calendar.calendar(year,w,l,c).
9calendar.prmonth(year,month,w=2,l=1)
相当于 print calendar.calendar(year,w,l,c)。
10calendar.setfirstweekday(weekday)
设置每周的起始日期码。0(星期一)到6(星期日)。
11calendar.timegm(tupletime)
和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间辍(1970纪元后经过的浮点秒数)。
12calendar.weekday(year,month,day)
返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。
한 줄에 3개월이 있고 간격은 c인 여러 줄 문자열 형식으로 연도 달력을 반환합니다. 일일 너비 간격은 w자입니다. 각 줄의 길이는 21* W+18+2* C입니다. l은 주당 라인 수입니다.
2calendar.firstweekday( )
현재 주간 시작일 설정을 반환합니다. 기본적으로 caendar 모듈이 처음 로드될 때(월요일) 0이 반환됩니다.
3calendar.isleap(year)
윤년이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.
4calendar.leapdays(y1,y2)

Y1과 Y2 사이의 2년을 반환합니다. 총 수 윤년.

5calendar.month(year,month,w=2,l=1)반환 여러 줄의 문자열 형식으로 된 연도 및 월 달력으로, 두 줄의 제목과 한 줄의 주를 포함합니다. 일일 너비 간격은 w자입니다. 각 줄의 길이는 7* w+6입니다. l은 주당 라인 수입니다.
6calendar.monthcalendar(year,month)

단일 수준의 중첩된 정수 목록을 반환합니다. 각 하위 목록에는 주를 나타내는 정수가 포함됩니다. 연도와 월을 제외한 날짜는 0으로 설정되고, 범위 내의 날짜는 1부터 시작하여 해당 월의 날짜로 표시됩니다.

7calendar.monthrange(year,month)

두 개의 정수를 반환합니다. 첫 번째는 해당 월의 요일에 대한 날짜 코드이고, 두 번째는 해당 월의 요일 코드입니다. 일 범위는 0(월요일)부터 6(일요일)까지이고, 월 범위는 1부터 12까지입니다.
8calendar.prcal(연도,w=2,l=1,c=6)
    Calendar.calendar(year,w,l,c) 인쇄와 동일합니다.
9calendar.prmonth(year,month,w =2,l=1)
  • calendar.calendar(year, w, l, c)를 인쇄하는 것과 동일합니다.
  • 10calendar.setfirstweekday(weekday)

    한 주의 시작 요일 코드를 설정합니다. 0(월요일) ~ 6(일요일).

    11calendar.timegm(tupletime)

    time.gmtime의 반대: 시간 튜플 형식을 허용합니다. , 해당 순간의 시간(1970년 에포크 이후 경과된 부동 소수점 초 수)을 반환합니다.
    12calendar.weekday(년,월,일)주어진 날짜의 날짜 코드를 반환합니다. . 0(월요일) ~ 6(일요일). 월은 1(1월)부터 12(12월)까지입니다.
  • 기타 관련 모듈 및 함수
  • Python에서 날짜와 시간을 처리하는 다른 모듈은 다음과 같습니다.

  • datetime 모듈
    <🎜><🎜>pytz 모듈<🎜><🎜><🎜><🎜>dateutil 모듈<🎜><🎜><🎜 >< 🎜><🎜>