Python 시간 처리에 대한 전체 요약
datetime 모듈은 주로 날짜(연, 월, 일, 시, 분, 초)를 나타내는 데 사용됩니다. 달력 모듈은 주로 연, 월, 일, 요일 및 기타 정보를 나타내는 데 사용됩니다. 시간 모듈은 주로 시, 분, 초에 중점을 두고 있으며, 대략적인 기능적 관점에서 보면 이 세 가지가 각각 하나의 영역에 초점을 맞춰 상호보완적인 관계에 있다고 생각할 수 있습니다. 사용자가 다양한 목적에 따라 적합한 모듈을 선택하는 것이 편리합니다.
2. 시간 모듈부터 시작해 보겠습니다. 시간 모듈을 배우려면 먼저 몇 가지 시간 관련 개념을 알아야 합니다.(1)시대 시간을 1,000,000밀리초와 같은 밀리초 단위로 표현하고 싶다고 가정해 보겠습니다. 그러면 1,000,000밀리초의 시작점, 즉 우리의 시간 기준점은 무엇입니까? 예를 들어, 당신의 키가 1.8미터라고 하면, 이 높이는 당신이 서 있는 땅의 높이를 의미합니다. 이 시간 기준점은 Unix 시스템에서 1970년 1월 1일 0시를 기준으로 합니다.
(2)GMT, UTC 위에서 epoch는 1970년의 시작점을 나타낸다고 했는데, 그렇다면 이 1970년은 어느 기준시점을 기준으로 하는 것일까요? 일반적으로 GMT(그리니치 표준시)라고도 하고 UTC(협정 세계시)라고도 하는 그리니치 시간을 기준으로 합니다. 시간축에 두 가지 이름이 있는 이유는 무엇입니까? 역사적으로 GMT가 먼저 오고 UTC가 그 다음입니다.
UTC는 현재 우리가 사용하는 시간 표준이고, GMT는 예전 시간 측정 표준입니다. UTC는 원자시계를 기준으로 시간을 계산하고, GMT는 지구의 자전과 공전을 기준으로 시간을 계산합니다.
즉, UTC를 실제 기준시간으로 간주할 수 있으며 UTC와 GMT의 편차는 0입니다.
실제로 우리 컴퓨터에는 UTC 시간을 실시간으로 기록하는 하드웨어 모듈 RCT가 있습니다. 이 모듈은 별도의 배터리로 구동되며 전원이 꺼져도 영향을 받지 않습니다.
epoch의 시간 기준과 UTC의 기준을 사용하면 시간을 정확하게 표현할 수 있습니다.
(3)DST, tzone 시간을 정확하게 표현할 수는 있지만, 대부분의 경우 지역의 실제 상황에 따라 시간을 조정해야 합니다. 가장 일반적인 것은 모두가 익숙하다고 생각하는 시간대입니다.
이 때, 5시 5분이라는 시간을 말할 때 시간을 정확하게 표현하려면 해당 시간대에 5시 5분을 추가해야 합니다.
또 다른 시간 조정은 DST입니다.
DST는 일광 절약 시간(Daylight Saving Time)을 의미합니다. 즉, 햇빛을 최대한 활용하고 전력 소비를 줄이기 위해 시간을 인위적으로 조정하며, 이는 다양한 국가 및 지역의 정책과 규정에 따라 달라집니다. 예를 들어, 겨울에는 7시에 일어나고 여름에는 6시에 일어난다면, 여름이 오면 인위적으로 1시간을 더해 일어난다. 7시인데 실제로는 한 시간 더 빠르다.
그러므로 궁금한 분들을 위해 Python은 tzone과 DST의 값을 어떻게 알 수 있는지 물어봐야 합니다. 대답은 환경 변수를 통해서입니다.
여기에서는 Linux를 예로 들어 설명하겠습니다.
Linux에는 TZ 환경 변수가 있으며 그 값은 다음과 유사합니다.
CST+08EDT, M4.1.0, M10.5.0 이 문자열은 다음과 같이 해석할 수 있으며 공백으로 구분하여 세 부분으로 나눕니다
CST+08 EDT, M4.1.0,M10.5.0
첫 번째 부분의 CST는 시간대 이름을 나타내며, 이는 중국 표준시로, +8은 베이징 시간을 의미하고 8시간은 UTC 시간입니다
두 번째 부분 EDT는 DST의 이름을 나타냅니다. 국가와 지역마다 정책과 규정이 다르기 때문에 DST가 다르다고 합니다. EDT 뒤에도 CST처럼 시간 조정 값이 올 수 있지만 우리나라에는 시간만 있습니다. 1986년부터 1992년까지의 조정값 DST는 2015년에 일정 기간 시행되었으나 현재는 폐지되었으므로 추후에 조정시간을 추가할 필요가 없습니다.
세 번째 부분은 DST 구현의 시작 및 종료 시간을 나타내며 자세한 설명은 생략하겠습니다.
(4) 시간 표현, 획득, 변환
time 모듈에서 시간을 가져오는 기본 방법은
으아아아UTC 시간을 사용하여 epoch부터 현재까지의 초 수(부동 소수점 숫자로 표시)를 반환합니다.
우리는 당연히 이 초를 연, 월, 일, 시, 분, 초의 형태로 변환하려고 하는데, 이 변환은 두 가지 유형으로 나뉘는데, 하나는 여전히 UTC 시간을 사용하는 것이고, 다른 하나는 조정된 시간을 사용하는 것입니다. 우리 시간대에는요.
시간 모듈은 두 가지 방법을 제공합니다.
으아아아둘 다 다음 속성을 가진 struct_time 클래스의 인스턴스를 반환합니다.
초로 표현되는 시간과 비교하면 이 표현이 우리가 이해하기에 더 적합합니다.
이 두 함수가 매개변수 전달 없이 호출되면 내부적으로 time.time()을 호출하고 반환된 초를 변환에 사용합니다.
반대로, Python은 이 두 struct_time을 초로 변환하는 메서드도 제공합니다.
calendar.timegm() 메서드는 UTC의 struct_time(gmtime의 반환 개체)을 epoch부터 시작하는 초 수로 변환하는 데 사용됩니다
time.mktime()은 타임존으로 조정된 struct_time(즉, localtime의 반환 객체) 객체를 epoch로부터 시작하는 초 수로 변환하는 데 사용됩니다
즉, mktime 메서드는 먼저 시스템에서 시간대와 DST 정보를 찾아 이 정보를 사용하여 struct_time을 조정한 다음 초로 변환합니다.
또 다른 일반적인 요구 사항은 시간과 시간을 나타내는 문자열 간의 변환입니다.
이를 위해 시간 모듈의 Strftime 및 strptime이 사용됩니다.
누구나 이름을 보면 그 의미를 알 수 있죠
strftime은 문자열 형식 시간으로, 시간을 문자열로 형식화하는 데 사용됩니다
strptime은 문자열을 시간으로 구문 분석하는 데 사용되는 문자열 구문 분석 시간입니다.
여기의 시간은 모두 struct_time 객체라는 점에 유의하세요.
시간 형식에 대해서는 아주 간단한 지식입니다. 공식 홈페이지 문서에서 내용을 빌려왔습니다.
이 두 가지 함수 외에도 시간 모듈은 시간을 문자열로 변환하는 데 도움이 되는 두 가지 편리한 방법도 제공합니다
asctime은 아래와 같이 struct_time 객체를 표준 24자 문자열로 변환하는 데 사용됩니다.
일 6월 20일 23:21:05 1993
ctime 메소드는 초를 수신한다는 점만 제외하면 asctime과 동일한 기능을 가지고 있습니다. 먼저 localtime을 통해 초를 struct_time으로 변환한 다음 asctime과 동일하게 됩니다.
위는 시간 모듈의 핵심 내용입니다. 이러한 API를 기억하는 데 도움이 되는 공식을 사용하려고 합니다
으아아아다음으로 datetime 모듈 학습을 시작하겠습니다.
3.datetime 모듈 (1) 개요time 모듈은 시간을 얻고 표현하는 문제를 해결하고, datetime 모듈은 더 나아가 연, 월, 일, 시, 분, 초 정보를 시간으로 빠르게 얻고 조작하는 문제를 해결합니다.
간단히 말하면 이 모듈에는 세 가지 핵심 클래스가 있습니다. 날짜 클래스는 연도, 월, 일을 나타내고 시간 클래스는 시, 분, 초, 밀리초를 나타냅니다. . 징글은 이 상황을 기억하는 데 도움이 될 수 있습니다:
시간에는 시간이 없다
날짜/시간에 숨김
편집이 별로인가요? 글쎄요, 저도 그렇게 생각해요.
datetime 클래스는 날짜와 시간의 조합입니다.
한 가지 미리 설명할 것이 있습니다. time 클래스와 datetime 클래스 모두 속성이 있습니다. 해당 값은 시간 또는 날짜/시간의 시간대 정보를 포함하는 tzinfo 객체입니다. 인식하며, 에포크 이후의 초 단위로 정확하게 변환할 수 있습니다.
이 속성을 None으로 설정하면 시간 개체 또는 날짜/시간 개체에 시간대 정보가 없습니다. 특히 현지 시간을 나타내는지 UTC 시간을 나타내는지는 프로그램에서 직접 결정해야 합니다.
여기서 말하는 현지 시간은 우리 시간대의 시간을 의미하며, UTC 시간은 국제 표준시인 그리니치 표준시를 의미합니다. 아래도 마찬가지입니다.
날짜에는 시간대 정보가 없다는 점 기억해주세요.
(2)从创建datetime开始创建datetime对象,我最常用的办法如下
dt=datetime.datetime.fromtimestamp(time.time())
以上,time.time()获得自epoch开始的秒数,fromtimestamp方法会将这个秒数转变成一个datetime对象。
这里有一个问题,这个datetime对象究竟是utc的还是local的?
答案是local的,这是该方法的默认行为。如果你在fromtimestamp方法中传入一个表示时区的参数,即tzinfo对象,就会按传入的时区信息进行转换。
获得表示当前local时间的datetime对象,还有两个简便方法
datetime. datetime. now() datetime. datetime. today()
以上我们得到的都是local的datetime对象,如何获得utc的datetime对象呢?有两个办法
datetime. datetime. utcfromtimestamp() datetime. datetime. utcnow()
我们还可以从字符串中创建datetime对象,
其内部还是先调用的time模块中的striptime方法,获取struct_time对象,再利用struct_time对象中的年月日时分秒信息构建datetime对象。
同样的,datetime类也提供了strftime(),asctime(),ctime()方法,相信不说你也知道是做什么的了。
datetime类还提供了一个combine方法,用来将一个date对象和一个time对象组合成一个datetime对象。
需要注意的是,datetime模块中出现timestamp时,一般可将其理解成time.time()返回的秒数
(3)date和time的创建date对象的创建和datetime非常相似,
datetime. date. today()
datetime.date.fromtimestamp()都可以创建一个date对象。
当然,你也可以通过构造方法传入年月日来创建date对象。
相比之下,time对象的创建就很有限,只能通过
datetime.time([hour[, minute[, second[, microsecond[, tzinfo]]]]])
这个方法创建。
(4)以上三个对象的操作和timedelta类在实际使用中,我们有一大块需求就是对日期进行比较和加减运算。得益于python的操作符重载能力,python中可以方便地对
date对象之间,或者datetime对象之间进行小于(
注意,这里仅限于同类对象之间,而且,不包括time对象之间。
两个date对象作减,或者两个datetime对象之间作减,差值用一个timedelta对象表示。
同理,一个date 对象或者datetime对象也可以加或者减一个timedelta对象。
一个timedelta对象含有三个属性:days,seconds, microseconds,days属性可以取负值,另外两个属性都只能是正值。
你可以用total_seconds()方法获得一个timedelta对象的秒数表示。
两个timedelta对象之间可加,可减,但不能做大小比较,因为这样没什么意义。
一个timedelta对象还可以与整数相乘,或通过//操作与一个整数相除。
还可以取反,或者用abs函数获得绝对值
4.无总结,不进步本文的目的不在于详细说明python处理时间日期的api如何使用,而是想通过一个概览的形式,让大家抓住time和datetime模块的设计结构,从而能够清楚这些模块提供了哪些能力,在需要的时候能够想起来去用,至于查详细的api,应该是可以轻松解决的。
위 내용은 Python 시간 처리에 대한 전체 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Centos와 Ubuntu의 주요 차이점은 다음과 같습니다. Origin (Centos는 Red Hat, Enterprise의 경우, Ubuntu는 Debian에서 시작하여 개인의 경우), 패키지 관리 (Centos는 안정성에 중점을 둡니다. Ubuntu는 APT를 사용하여 APT를 사용합니다), 지원주기 (Ubuntu는 5 년 동안 LTS 지원을 제공합니다), 커뮤니티에 중점을 둔다 (Centos Conciors on ubuntu). 튜토리얼 및 문서), 사용 (Centos는 서버에 편향되어 있으며 Ubuntu는 서버 및 데스크탑에 적합), 다른 차이점에는 설치 단순성 (Centos는 얇음)이 포함됩니다.

Centos는 2024 년에 상류 분포 인 RHEL 8이 종료 되었기 때문에 폐쇄 될 것입니다. 이 종료는 CentOS 8 시스템에 영향을 미쳐 업데이트를 계속받지 못하게합니다. 사용자는 마이그레이션을 계획해야하며 시스템을 안전하고 안정적으로 유지하기 위해 Centos Stream, Almalinux 및 Rocky Linux가 포함됩니다.

CentOS 설치 단계 : ISO 이미지를 다운로드하고 부팅 가능한 미디어를 실행하십시오. 부팅하고 설치 소스를 선택하십시오. 언어 및 키보드 레이아웃을 선택하십시오. 네트워크 구성; 하드 디스크를 분할; 시스템 시계를 설정하십시오. 루트 사용자를 만듭니다. 소프트웨어 패키지를 선택하십시오. 설치를 시작하십시오. 설치가 완료된 후 하드 디스크에서 다시 시작하고 부팅하십시오.

Docker는 Linux 커널 기능을 사용하여 효율적이고 고립 된 응용 프로그램 실행 환경을 제공합니다. 작동 원리는 다음과 같습니다. 1. 거울은 읽기 전용 템플릿으로 사용되며, 여기에는 응용 프로그램을 실행하는 데 필요한 모든 것을 포함합니다. 2. Union 파일 시스템 (Unionfs)은 여러 파일 시스템을 스택하고 차이점 만 저장하고 공간을 절약하고 속도를 높입니다. 3. 데몬은 거울과 컨테이너를 관리하고 클라이언트는 상호 작용을 위해 사용합니다. 4. 네임 스페이스 및 CGroup은 컨테이너 격리 및 자원 제한을 구현합니다. 5. 다중 네트워크 모드는 컨테이너 상호 연결을 지원합니다. 이러한 핵심 개념을 이해 함으로써만 Docker를 더 잘 활용할 수 있습니다.

CentOS 시스템 하에서 Gitlab의 백업 및 복구 정책 데이터 보안 및 복구 가능성을 보장하기 위해 CentOS의 Gitlab은 다양한 백업 방법을 제공합니다. 이 기사는 완전한 GITLAB 백업 및 복구 전략을 설정하는 데 도움이되는 몇 가지 일반적인 백업 방법, 구성 매개 변수 및 복구 프로세스를 자세히 소개합니다. 1. 수동 백업 gitlab-rakegitlab : 백업 : 명령을 작성하여 수동 백업을 실행하십시오. 이 명령은 gitlab 저장소, 데이터베이스, 사용자, 사용자 그룹, 키 및 권한과 같은 주요 정보를 백업합니다. 기본 백업 파일은/var/opt/gitlab/backups 디렉토리에 저장됩니다. /etc /gitlab을 수정할 수 있습니다

Docker Desktop을 사용하는 방법? Docker Desktop은 로컬 머신에서 Docker 컨테이너를 실행하는 도구입니다. 사용 단계는 다음과 같습니다. 1. Docker Desktop 설치; 2. Docker Desktop을 시작하십시오. 3. Docker 이미지를 만듭니다 (Dockerfile 사용); 4. Docker Image 빌드 (Docker 빌드 사용); 5. 도커 컨테이너를 실행하십시오 (Docker Run 사용).

Centos Hard Disk Mount는 다음 단계로 나뉩니다. 하드 디스크 장치 이름 (/dev/sdx)을 결정하십시오. 마운트 포인트를 만듭니다 ( /mnt /newdisk를 사용하는 것이 좋습니다); 마운트 명령을 실행합니다 (mount /dev /sdx1 /mnt /newdisk); 영구 마운트 구성을 추가하려면 /etc /fstab 파일을 편집하십시오. Umount 명령을 사용하여 장치를 제거하여 프로세스가 장치를 사용하지 않도록하십시오.

Centos가 중단 된 후 사용자는 다음과 같은 조치를 취할 수 있습니다. Almalinux, Rocky Linux 및 Centos 스트림과 같은 호환되는 분포를 선택하십시오. Red Hat Enterprise Linux, Oracle Linux와 같은 상업 분포로 마이그레이션합니다. Centos 9 Stream : 롤링 분포로 업그레이드하여 최신 기술을 제공합니다. Ubuntu, Debian과 같은 다른 Linux 배포판을 선택하십시오. 컨테이너, 가상 머신 또는 클라우드 플랫폼과 같은 다른 옵션을 평가하십시오.
