시간 처리는 현재 날짜 시간 가져오기, 오늘 날짜 가져오기, 내일/이전 N일 가져오기, 하루의 시작 및 종료 시간 가져오기(00:00:00 23)와 같은 일상적인 개발에서 가장 일반적인 요구 사항입니다. :59:59 ), 두 날짜/시간 사이의 시차를 가져오고 이번 주/이번 달/지난 달의 마지막 날 등을 가져옵니다. 이러한 변환은 지저분하고 기억하기 어려워 보이기 때문에 오늘은 Python의 시간 처리를 요약해 보겠습니다.
원리: 날짜/시간을 중심, 출발점 또는 환승으로 삼아 대상 개체로 변환하여 대부분의 비즈니스 시나리오에 필요한 날짜 변환 처리를 다룹니다.
단계:
1. 여러 객체와 그 관계를 숙지하세요
2. 각 객체 유형의 기본 작동 방법을 이해합니다
3. 변환 관계를 통해 변환합니다
datetime은 날짜 날짜 및 시간에 대한 모든 정보를 포함하는 시간과의 조합입니다.
함수 프로토타입은 다음과 같습니다.
datetime.datetime(년, 월, 일[ , 시간[ , 분[ , 초[ , 마이크로초[ , tzinfo] ] ] ] ] )
각 매개변수의 의미는 날짜 및 시간 생성자의 의미와 동일합니다. 매개변수 값의 범위에 주의하세요.
예:
1. 날짜/시간 개체 가져오기
코드는 다음과 같습니다.
import datetime now = datetime.datetime.now() #输出:datetime.datetime(2016, 11, 26, 8, 34, 30, 876359)
2. 타임스탬프(timestamp) 가져오기
Time 스탬프는 1970년 1월 1일(00:00:00 GMT) 이후의 초 수입니다. 유닉스 타임스탬프라고도 합니다.
코드는 다음과 같습니다.
import time time.time() #输出:1480120686.733905
3. 시간 가져오기 튜플(tuple)
코드는 다음과 같습니다.
import time time.localtime() #输出:time.struct_time(tm_year=2016, tm_mon=11, tm_mday=26, tm_hour=8, tm_min=39, tm_sec=33, tm_wday=5, tm_yday=331, tm_isdst=0)
4. 문자열(문자열)
문자열 형식 매개변수 목록:
datetime.strftime(형식)
%a: 주의 약어. 예를 들어 수요일은 웹
%A: 이번 주의 전체 문자입니다. 예를 들어 수요일은 수요일입니다.
%b: 월의 약어입니다. 예를 들어 4월은 4월입니다.
%B: 전체 월입니다. 예를 들어 4월은 4월입니다.
%c: 날짜와 시간을 문자열로 표현합니다. (예: 04/07/10 10:43:39)
%d: 이번 달의 일수(월의 일자)
%f: 마이크로초(범위 [0,999999 ])
%H: 시(24시간 형식, [0, 23])
%I: 시(12시간 형식, [0, 11])
%j: 날짜 수 연도 [001,366] (일)
%m: 월 ([01,12])
%M: 분 ([00,59])
%p: 오전 또는 오후
%S: 초(범위는 [00, 61], 왜 [00, 59]는 안되나요, 파이썬 매뉴얼을 참고하세요~_~)
%U: 올해의 주 수와 주 수 금년), Sunday as 한 주의 첫날
%w: 오늘이 이번 주의 일수, 범위는 [0, 6], 6은 일요일을 의미합니다.
%W: 숫자 금년의 주 수(금년의 수), 월요일은 주의 첫 번째 날입니다.
%x: 날짜 문자열(예: 04/07/10)
%X: 시간 문자열(예: : 10:43:39)
%y: 2자리로 표현된 연도
%Y: 4자리로 표현된 연도
%z: UTC 시간 간격(현지 시간인 경우 빈 문자열 반환) )
%Z: 시간대 이름(현지 시간인 경우 빈 문자열을 반환)
%%: %% => %
코드는 다음과 같습니다.
import datetime datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") '2016-11-26 08:40:39'
5.날짜(날짜)
코드는 다음과 같습니다.
import datetime datetime.datetime.now().date() datetime.date(2016, 11, 26)
6. 오늘 날짜를 가져옵니다
코드는 다음과 같습니다. 🎜>
import datetime datetime.date.today() datetime.date(2016, 11, 26)
import datetime datetime.date.today() + datetime.timedelta(days=1) datetime.date(2016, 11, 27)
import datetime >>> datetime.datetime.now() datetime.datetime(2016, 11, 26, 8, 42, 59, 665368) >>> datetime.datetime.now() - datetime.timedelta(days=3) datetime.datetime(2016, 11, 24, 8, 43, 14, 696948)
import datetime datetime.datetime.combine(datetime.date.today(), datetime.time.min) datetime.datetime(2016, 11, 26, 0, 0) datetime.datetime.combine(datetime.date.today(), datetime.time.max) datetime.datetime(2016, 11, 26, 23, 59, 59, 999999)
import datetime (datetime.datetime(2016,12,13,12,0,0) - datetime.datetime.now()).total_seconds() 1480506.809658
import datetime today = datetime.date.today() #输出: datetime.date(2016, 11, 26) sunday = today + datetime.timedelta(6 - today.weekday()) #输出:datetime.date(2016, 11, 27)
import calendar today = datetime.date.today() last_day_num = calendar.monthrange(today.year, today.month) last_day = datetime.date(today.year, today.month, last_day_num) #输出:datetime.date(2016, 11, 30)
import datetime today = datetime.date.today() first = datetime.date(day=1, month=today.month, year=today.year) lastMonth = first - datetime.timedelta(days=1) #输出:datetime.date(2016, 10, 31)
#当月1号 datetime.date(datetime.date.today().year,datetime.date.today().month,1) #当月1号 datetime.date.today().replace(day=1) #上月1号 (datetime.date.today().replace(day=1) - datetime.timedelta(1)).replace(day=1)