Python 상용 시간 조작 총화[현재 시간,시간 함수,응용 등 획득]

8276 단어 Python시간 조작
이 글 의 실례 는 Python 이 자주 사용 하 는 시간 조작 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
필요 한 모듈 을 가 져 옵 니 다.

>>> import time

시간 형식 을 설정 합 니 다.다음 에 사용 할 것 입 니 다.

>>>ISOTIMEFORMAT='%Y-%m-%d %X'

현재 의 시간 을 살 펴 보면 다른 많은 언어 와 비슷 하 다.이것 은 epoch(1970 년 1 월 1 일 00:00:00)부터 현재 의 초 수 이다.

>>> time.time()
1180759620.859

위의 것 은 알 아 볼 수 없 으 니,격식 을 바 꾸 어 보 자.

>>> time.localtime()
(2007, 6, 2, 12, 47, 7, 5, 153, 0)

localtime 이 tuple 형식 을 되 돌려 주 는 시간 은 gmtime()과 유사 한 함수 가 있 습 니 다.두 함수 의 차 이 는 시간 대 입 니 다.gmtime()은 0 시간 대의 값 을 되 돌려 주 고 localtime 은 현재 시간 대의 값 을 되 돌려 줍 니 다.

>>> time.strftime( ISOTIMEFORMAT, time.localtime() )
'2007-06-02 12:54:29′

우리 의 시간 형식 으로 정 의 했 습 니 다.strftime 를 사용 하여 시간 을 바 꾸 었 습 니 다.현재 시간 을 가 져 오 면 time.localtime()을 사용 하지 않 아 도 됩 니 다.

>>> time.strftime( ISOTIMEFORMAT, time.localtime( time.time() ) )
'2007-06-02 12:54:31′
>>> time.strftime( ISOTIMEFORMAT, time.gmtime( time.time() ) )
'2007-06-02 04:55:02′

위 에 gmtime 과 localtime 의 차 이 를 보 여 줍 니 다.
시간 대 보기

>>> time.timezone
-28800

위의 값 은 초 값 으로 현재 시간 대 와 0 시간 대의 차이 에 대한 설명 입 니 다.-28800=-8*3600,즉 동 8 구 입 니 다.
간단 한 함수 몇 개 를 붙이다

def ISOString2Time( s ):
  '''
  convert a ISO format time to second
  from:2006-04-12 16:46:40 to:23123123
           
  '''
  return time.strptime( s, ISOTIMEFORMAT )
def Time2ISOString( s ):
  '''
  convert second to a ISO format time
  from: 23123123 to: 2006-04-12 16:46:40
               
  '''
  return time.strftime( ISOTIMEFORMAT, time.localtime( float( s) ) )
def dateplustime( d, t ):
  '''
  d=2006-04-12 16:46:40
  t=2  
  return 2006-04-12 18:46:40
                ,time2sec       ,    ,3 ,13  ,10      ,       ,         。
  '''
  return Time2ISOString( time.mktime( ISOString2Time( d ))+time2sec( t ) )
def dateMinDate( d1, d2 ):
  '''
  minus to iso format date,return seconds
    2        
  '''
  d1=ISOString2Time( d1 )
  d2=ISOString2Time( d2 )
  return time.mktime( d1 )-time.mktime( d2 )

프로필
time 모듈 은 각종 조작 시간의 함 수 를 제공 합 니 다.
설명:일반적으로 시간 을 나타 내 는 두 가지 방식 이 있다.
첫 번 째 는 타임 스탬프 방식(1970.1.1 00:00:00 초 로 계 산 된 오프셋)이 고 타임 스탬프 는 유일한 것 이다.
두 번 째 는 수조 의 형식 으로(structtime),모두 9 개의 요소 가 있 는데 각각'같은 시간 스탬프 의 struct'를 나타 낸다.time 은 시간 대 에 따라 달라 집 니 다.
year (four digits, e.g. 1998)
month (1-12)
day (1-31)
hours (0-23)
minutes (0-59)
seconds (0-59)
weekday (0-6, Monday is 0)
Julian day (day in the year, 1-366)
DST(Daylight Savings Time)flag(-1,0 or 1)여름 캠프 여부
If the DST flag is 0, the time is given in the regular time zone;
if it is 1, the time is given in the DST time zone;
if it is -1, mktime() should guess based on the date and time.
바 이 두 여름 캠프 소개:http://baike.baidu.com/view/100246.htm
UTC 소 개 는 다음 글 에서 UTC 에 대한 소 개 를 참고 할 수 있 습 니 다.https://www.jb51.net/article/40758.htm
함수 소개
1. asctime()asctime([tuple]) -> string
하 나 를 structtime(기본 값 은 당시 시간),문자열 로 변환
Convert a time tuple to a string, e.g. 'Sat Jun 06 16:26:11 1998'.
When the time tuple is not present, current time as returned by localtime()
is used.
2. clock()clock() -> floating point number
이 함 수 는 두 가지 기능 이 있 는데,
첫 번 째 호출 시 프로그램 이 실 행 된 실제 시간 을 되 돌려 줍 니 다.
두 번 째 호출 후,첫 번 째 호출 후,이번 호출 까지 의 시간 간격 을 되 돌려 줍 니 다.
예시:

import time
if __name__ == '__main__':
  time.sleep(1)
  print "clock1:%s" % time.clock()
  time.sleep(1)
  print "clock2:%s" % time.clock()
  time.sleep(1)
  print "clock3:%s" % time.clock()

출력:

clock1:3.35238137808e-006
clock2:1.00004944763
clock3:2.00012040636

그 중 첫 번 째 clock 출력 은 프로그램 실행 시간 입 니 다.
두 번 째,세 번 째 clock 은 모두 첫 번 째 clock 과 의 시간 간격 입 니 다.
3. sleep(...)sleep(seconds)
스 레 드 가 지정 한 시간 에 실 행 됩 니 다.테스트 를 통 해 단 위 는 초 입 니 다.그러나 도움말 문서 에 다음 과 같은 말 이 있 습 니 다.이 관문 은 알 아 볼 수 없습니다.
“The argument may be a floating point number for subsecond precision.”
4. ctime(...)ctime(seconds) -> string
시간 스탬프(기본 값 은 현재 시간)를 시간 문자열 로 변환 합 니 다.
예 를 들 면:

time.ctime()

출력:'Sat Mar 28 22:24:24 2009'
5. gmtime(...)gmtime([seconds]) -> (tm_year, tm_mon, tm_day, tm_hour, tm_min,tm_sec, tm_wday, tm_yday, tm_isdst)
시간 스탬프 를 UTC 시간 대(0 시간 대)로 변환 하 는 structtime,seconds 인자 가 입력 되 지 않 으 면 현재 시간 을 변환 기준 으로 합 니 다.
6. localtime(...)localtime([seconds]) -> (tm_year,tm_mon,tm_day,tm_hour,tm_min,tm_sec,tm_wday,tm_yday,tm_isdst)
시간 스탬프 를 현재 시간 대의 struct 로 변환 합 니 다.time,seconds 인자 가 입력 되 지 않 으 면 현재 시간 을 변환 기준 으로 합 니 다.
7. mktime(...)mktime(tuple) -> floating point number
하 나 를 struct 로타임 스탬프
8. strftime(...)strftime(format[, tuple]) -> string
지정 한 structtime(기본 값 은 현재 시간)지정 한 포맷 문자열 에 따라 출력 합 니 다.
python 의 시간 날짜 포맷 기호:
%y 두 자릿수 의 연도 표시(00-99)
%Y 네 자리 수의 연도 표시(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 1 년 중 요일(00-53)일요일 은 요일 의 시작
%w 요일(0-6),일요일 은 요일 의 시작
%W 1 년 중 요일(00-53)월요일 은 요일 의 시작 입 니 다.
%x 로 컬 해당 날짜 표시
%X 로 컬 에 해당 하 는 시간 표시
%Z 현재 시간 대의 이름
%%%번호 자체
9. strptime(...)strptime(string, format) -> struct_time
시간 문자열 을 지정 한 포맷 문자 에 따라 배열 형식 으로 변환 하 는 시간
예 를 들 면:
2009-03-20 11:45:39  대응 하 는 포맷 문자열:%Y-%m-%d%H:%M:%S
Sat Mar 28 22:24:24 2009 에 대응 하 는 포맷 문자열:%a%b%d%H:%M:%S%Y
10. time(...)time() -> floating point number
현재 시간의 타임 스탬프 되 돌리 기
의문점
1.여름 캠프
structtime 중 여름 캠프 는 소 용이 없 는 것 같 습 니 다.예 를 들 어...

a = (2009, 6, 28, 23, 8, 34, 5, 87, 1)
b = (2009, 6, 28, 23, 8, 34, 5, 87, 0)

a 와 b 는 각각 여름 캠프 와 표준 시간 을 나타 내 는데 이들 사이 에 시간 스탬프 로 전환 하면 3600 과 관련 이 있어 야 하지만 전환 후 출력 은 모두 646585714.0 이다.
넷 째,작은 응용
1.python 현재 시간 가 져 오기time.time()현재 타임 스탬프 가 져 오기time.localtime()현재 시간의 struct시간 형식time.ctime()현재 시간의 문자열 형식
2.python 포맷 문자열
2009-03-20 11:45:39 형식 으로 포맷

time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

Sat Mar 28 22:24:24 2009 형식 으로 포맷

time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())

3.형식 문자열 을 타임스탬프 로 변환

a = "Sat Mar 28 22:24:24 2009"
b = time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))

PS:본 사 이 트 는 유 닉 스 타임 스탬프 변환 및 날짜 온라인 도 구 를 제공 하여 매우 실 용적 이 며 참고 할 수 있 습 니 다.
유 닉 스 타임 스탬프(timestamp)변환 도구:
http://tools.jb51.net/code/unixtime
온라인 날짜/일수 계산기:
http://tools.jb51.net/jisuanqi/date_jisuanqi
온라인 달력:
http://tools.jb51.net/bianmin/wannianli
온라인 음력/양력 변환 도구:
http://tools.jb51.net/bianmin/yinli2yangli
파 이 썬 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기