Python 의 datetime 라 이브 러 리 처리 시간 사용 하기(RPA 프로 세 스)

7129 단어 pythondatetime창고.
RPA 프로 세 스 자동화 과정 에서 시간 관련 작업 을 만 났 을 때 datetime 라 이브 러 리 의 일부 방법 으로 처리 할 수 있 습 니 다.
datetime 은 Python 처리 날짜 와 시간의 표준 라 이브 러 리 입 니 다.
1.현재 날짜 와 시간 가 져 오기
현재 날짜 와 시간 을 어떻게 얻 는 지 먼저 봅 시다.

>>> from datetime import datetime
>>> now = datetime.now()
>>> print(now)
2019-11-23 11:12:32.715604
>>> print(type(now))
<class 'datetime.datetime'>
datetime 은 모듈 임 을 알 수 있 습 니 다.datetime 모듈 에는 datetime 클래스 가 포함 되 어 있 습 니 다.from datetime import datetime 을 통 해 가 져 온 것 이 datetime 클래스 입 니 다.
import datetime 만 가 져 오 면 전체 이름 datetime.datetime 을 참조 해 야 합 니 다.
datetime.now()는 현재 날짜 와 시간 을 되 돌려 줍 니 다.그 유형 은 datetime 입 니 다.
2.지 정 된 날짜 와 시간 가 져 오기
특정한 날짜 와 시간 을 지정 하려 면 매개 변수 로 datetime 을 직접 구성 합 니 다.

>>> from datetime import datetime
>>> time = datetime(2008,8,8,8,8) #           datetime
>>> print(time)
2008-08-08 08:08:00
3.datetime 에서 timestamp 로 전환
컴퓨터 에서 시간 은 실제로 숫자 로 표시 된다.우 리 는 1970 년 1 월 1 일 00:00:00 UTC+00:00 시간 대의 시간 을 epoch time 이 라 고 부 르 며 0(1970 년 이전의 시간 timestamp 는 마이너스)으로 기록 하고 현재 시간 은 epoch time 의 초 수 에 비해 timestamp 이 라 고 부른다.
당신 은 다음 과 같이 생각 할 수 있 습 니 다.

timestamp = 0 = 1970-1-1 00:00:00 UTC+0:00
대응 하 는 베 이 징 시간 은:

timestamp = 0 = 1970-1-1 08:00:00 UTC+8:00
이 를 통 해 알 수 있 듯 이 timestamp 의 값 은 시간 대 와 아무런 관계 가 없다.timestamp 가 확정 되면 UTC 시간 이 확정 되 고 임 의 시간 대 로 전환 하 는 시간 도 완전히 확정 되 기 때문이다.이것 이 바로 컴퓨터 가 저장 하 는 현재 시간 은 timestamp 로 표시 되 는 이유 이다.전 세계 각지 의 계산기 가 임 의 시간 에 timestamp 가 똑 같 기 때문이다(가정 시간 이 교정 되 었 다).
datetime 형식 을 timestamp 로 바 꾸 려 면 timestamp()방법 을 간단하게 호출 해 야 합 니 다.

>>> from datetime import datetime
>>> time = datetime(2019,11,23,11,25)
>>> time.timestamp()
1574479500.0
Python 의 timestamp 는 부동 소수점 입 니 다.작은 숫자 가 있 으 면 작은 숫자 는 밀리초 수 를 나타 낸다.
4.timestamp 에서 datetime 로 전환
timestamp 를 datetime 로 변환 하려 면 datetime 에서 제공 하 는 from timestamp()방법 을 사용 하 십시오.

>>> from datetime import datetime
>>> time = 1574479500.0
>>> print(datetime.fromtimestamp(time))
2019-11-23 11:25:00
timestamp 는 부동 소수점 임 을 알 수 있 습 니 다.시간 대의 개념 이 없고 datetime 은 시간 대가 있 습 니 다.상기 전환 은 timestamp 와 로 컬 시간 에 전환 합 니 다.
로 컬 시간 은 현재 운영 체제 가 설정 한 시간 대 를 가리킨다.예 를 들 어 베 이 징 시 구 는 동 8 구 이 고 현지 시간:2019-11-23 11:25:00
실제 UTC+8:00 시간 대:2019-11-23 11:25:00 UTC+8:00
현재 그리니치 표준 시간 은 베 이 징 시간 과 8 시간 차이 가 났 다.즉,UTC+0:00 시간 대의 시간 은 다음 과 같 을 것 이다.
2019-11-23 03:25:00 UTC+0:00
timestamp 도 UTC 표준 시간 대 로 직접 전환 할 수 있 습 니 다.

>>> from datetime import datetime
>>> time = 1574479500.0
>>> print(datetime.fromtimestamp(time))
2019-11-23 11:25:00
>>> print(datetime.utcfromtimestamp(time)) # UTC   
2019-11-23 03:25:00
5.str 에서 datetime 로 전환
사용자 가 입력 한 날짜 와 시간 은 문자열 입 니 다.날짜 와 시간 을 처리 하려 면 먼저 str 를 datetime 으로 변환 해 야 합 니 다.변환 방법 은 datetime.strptime()을 통 해 이 루어 집 니 다.날짜 와 시간의 포맷 문자열 이 필요 합 니 다.

>>> from datetime import datetime
>>> today = datetime.strptime('2019-11-23 11:34:49','%Y-%m-%d %H:%M:%S')
>>> print(today)
2019-11-23 11:34:49
>>>
문자열'%Y-%m-%d%H:%M:%S'는 날짜 와 시간 부분의 형식 을 정 했 습 니 다.변 환 된 datetime 은 시간 정보 가 없습니다.
6.datetime 에서 str 로 전환
datetime 대상 이 있 으 면 문자열 로 포맷 하여 사용자 에 게 표시 하려 면 str 로 변환 해 야 합 니 다.변환 방법 은 strftime()를 통 해 이 루어 집 니 다.날짜 와 시간의 포맷 문자열 이 필요 합 니 다.

>>> from datetime import datetime
>>> now = datetime.now()
>>> print(now.strftime('%a, %b %d %H:%M'))
Sat, Nov 23 14:45
7.datetime 가감
날짜 와 시간 을 가감 하 는 것 은 사실상 datetime 을 뒤로 하거나 앞으로 계산 하여 새로운 datetime 을 얻 는 것 이다.가감 은+와-연산 자 를 직접 사용 할 수 있 지만 timedelta 클래스 를 가 져 와 야 합 니 다:

>>> from datetime import datetime,timedelta
>>> now = datetime.now()
>>> now
datetime.datetime(2019, 11, 23, 14, 49, 49, 739236)
>>> now + timedelta(hours = 5)
datetime.datetime(2019, 11, 23, 19, 49, 49, 739236)
>>> now - timedelta(days = 1)
datetime.datetime(2019, 11, 22, 14, 49, 49, 739236)
>>> now - timedelta(days = 3,hours = 3)
datetime.datetime(2019, 11, 20, 11, 49, 49, 739236)

이 를 통 해 알 수 있 듯 이 timedelta 를 사용 하면 며칠 전과 며칠 후의 시간 을 쉽게 계산 할 수 있다.
8.로 컬 시간 UTC 시간 으로 전환
로 컬 시간 은 시스템 이 시간 대 를 설정 하 는 시간 을 말 합 니 다.예 를 들 어 베 이 징 시간 은 UTC+8:00 시간 대 이 고 UTC 시간 은 UTC+0:00 시간 대 를 말 합 니 다.
datetime 형식 은 시간 대 속성 tzinfo 가 있 지만 기본 값 은 None 입 니 다.따라서 이 datetime 이 어떤 시간 대 인지 구분 할 수 없습니다.datetime 에 시간 대 를 강제로 설정 하지 않 는 한:

>>> from datetime import datetime,timedelta,timezone
>>> time_utc = timezone(timedelta(hours=8)) #      UTC+8:00
>>> now = datetime.now()
>>> now
datetime.datetime(2019, 11, 23, 14, 55, 5, 901745)
>>> now_utc = now.replace(tzinfo=time_utc) #       UTC+8:00
>>> now_utc
datetime.datetime(2019, 11, 23, 14, 55, 5, 901745, tzinfo=datetime.timezone(datetime.timedelta(0, 28800)))
시스템 시간 대가 UTC+8:00 이 라면 상기 코드 가 정확 합 니 다.그렇지 않 으 면 UTC+8:00 시간 대로 강제로 설정 할 수 없습니다.
9.시간 대 전환
먼저 utcnow()를 통 해 현재 UTC 시간 을 받 은 다음 임의의 시간 대로 전환 할 수 있 습 니 다.

>>> utc_time = datetime.utcnow().replace(tzinfo=timezone.utc) #    UTC   ,         UTC+0:00
>>> print(utc_time)
2019-11-23 07:05:25.865221+00:00
>>>
>>> bj_time = utc_time.astimezone(timezone(timedelta(hours=9))) #astimezone()           
>>> print(bj_time)
2019-11-23 16:05:25.865221+09:00
>>>
>>> dj_time = utc_time.astimezone(timezone(timedelta(hours=9))) #         
>>> print(dj_time)
2019-11-23 16:05:25.865221+09:00
>>>
>>> dj_time2 = bj_time.astimezone(timezone(timedelta(hours=9))) #              
>>> print(dj_time2)
2019-11-23 16:05:25.865221+09:00
시간 대 전환 의 관건 은 datetime 을 받 았 을 때 정확 한 시간 대 를 알 고 시간 대 를 강제로 설정 하 는 것 이다.
시간 대 를 가 진 datetime 을 이용 하여 astimezone()방법 을 통 해 임의의 시간 대 로 전환 할 수 있 습 니 다.
주:UTC+0:00 시간 대 에서 다른 시간 대 로 전환 해 야 하 는 것 이 아니 라 모든 시간 대의 datetime 을 정확하게 전환 할 수 있 습 니 다.예 를 들 어 상기 bjtime~djtime 2 의 전환.
작은 매듭
datetime 이 표시 하 는 시간 은 시간 대 정보 가 있어 야 특정한 시간 을 정할 수 있 습 니 다.그렇지 않 으 면 로 컬 시간 으로 만 볼 수 있 습 니 다.
datetime 을 저장 하려 면 timestamp 로 변환 해서 저장 하 는 것 이 가장 좋 습 니 다.timestamp 의 값 은 시간 대 와 전혀 무관 하기 때 문 입 니 다.
무료 다운로드 시용:  https://support.i-search.com.cn/
위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 Python 을 사용 한 datetime 라 이브 러 리 처리 시간(RPA 프로 세 스)입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기