Python의 시간 모듈에 대한 자세한 설명
Python 프로그래밍에서는 시간을 처리하고 연산해야 하는 경우가 많습니다. Python의 표준 라이브러리는 시간 관련 작업을 처리하기 위한 시간 모듈을 제공합니다. 이번 글에서는 time 모듈을 자세히 소개하겠습니다.
시간 모듈은 Python 표준 라이브러리의 일부이며 시간 처리를 위한 일부 함수와 클래스를 제공합니다. 이 모듈은 주로 다음과 같은 측면을 포함합니다:
시간 모듈은 time() 함수를 사용하여 현재 시간의 타임스탬프를 얻습니다. 다음은 간단한 예입니다:
import time now = time.time() print("当前时间戳:", now)
출력:
当前时间戳: 1563431484.0177832
시간을 쉽게 볼 수 있도록 시간 모듈은 타임스탬프를 현지 시간을 나타내는 문자열로 변환하는 asctime() 함수도 제공합니다. 다음은 예입니다.
import time now = time.time() localtime = time.localtime(now) asctime = time.asctime(localtime) print("当前时间:", asctime)
출력:
当前时间: Mon Jul 18 14:04:44 2019
또한 sleep() 함수는 지정된 시간(초 단위) 동안 프로그램을 일시 중지하고 프로그램이 실행되기 전에 일정 시간 동안 기다리도록 할 수 있습니다. 다음은 sleep() 함수를 사용하는 예입니다.
import time print("程序开始执行...") time.sleep(5) print("程序执行结束。")
위 코드를 실행하면 프로그램이 5초 동안 일시 정지된 후 "프로그램 실행이 종료됩니다."가 출력됩니다.
파이썬 프로그래밍에서 , 타임스탬프를 사람이 읽을 수 있는 시간 형식으로 변환하거나 그 반대로 변환해야 하는 경우가 많습니다. 시간 모듈은 시간 형식 변환에 사용되는 strftime() 및 strptime()이라는 두 가지 주요 기능을 제공합니다.
a.strftime()
strftime() 함수는 시간을 문자열로 형식화하는 데 사용되는 함수입니다. 다음은 예입니다.
import time t = (2019, 7, 18, 14, 30, 0, 0, 0, 0) localtime = time.mktime(t) asctime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(localtime)) print("时间格式化字符串:", asctime)
출력:
时间格式化字符串: 2019-07-18 14:30:00
위 코드에서는 먼저 시간 t를 타임스탬프 현지 시간으로 변환한 다음 strftime() 함수를 사용하여 현지 시간을 필요한 문자열 형식으로 형식화합니다.
strftime() 함수의 매개변수에는 형식 문자열과 시간 튜플이 포함됩니다. 여기서 형식 문자열은 시간 튜플을 문자열로 변환하기 위한 템플릿입니다. 일반적으로 사용되는 서식 지정 문자는 다음과 같습니다.
문자 서식 지정 | 의미 |
---|---|
%a | 요일 약어 |
%A | 요일 전체 이름 |
%b | 월 약어 |
%B | 월 전체 이름 |
%c | 현지 해당 시간 표현 |
%d | 일 |
% H | 24시간 형식의 시간을 나타냅니다. |
%I | 12시간 형식의 시간을 나타냅니다. |
%j | 연중의 요일 |
%m | 숫자로 표현되는 월(01~12) |
%M | 분 |
%p | AM 또는 PM |
%S | 초 |
%U | 일년의 주, 일요일이 한주의 시작 |
%w | 요일, 0(일요일) ~ 6(토요일) |
%W | 년, 월요일이 주의 시작 |
%x | 로컬 대응 날짜 표기 |
% | 연도 표기(0000~9999) |
%z | 시간수 차이 UTC 시간 |
%Z | 시간대 이름 |
%% | 문자 "%" 자체 |
b. strptime() strptime()函数则是将字符串转换为时间类型。以下是一个示例: import time str_time = "2019-07-18 14:30:00" struct_time = time.strptime(str_time, "%Y-%m-%d %H:%M:%S") print("转换后的时间元组:", struct_time) 로그인 후 복사 输出: 转换后的时间元组: time.struct_time(tm_year=2019, tm_mon=7, tm_mday=18, tm_hour=14, tm_min=30, tm_sec=0, tm_wday=3, tm_yday=199, tm_isdst=-1) 로그인 후 복사 在上述代码中,我们使用strptime()函数将格式为"%Y-%m-%d %H:%M:%S"的字符串str_time转换为时间元组。
在Python编程中,我们也经常需要进行时间的计算,如计算两个时间之间的差值、或将一个时间加上或减去一段时间后得到一个新的时间。time模块中提供了很多函数来实现这些计算操作。 a. 时间差值计算 计算两个时间之间的差值可以使用time模块中的mktime()函数,该函数将时间元组转换为时间戳,我们可以通过计算两个时间的时间戳之差来得到它们之间的时间差。以下是一个示例: import time t1 = (2019, 7, 18, 14, 30, 0, 0, 0, 0) t2 = (2019, 7, 19, 14, 30, 0, 0, 0, 0) t1_stamp = time.mktime(t1) t2_stamp = time.mktime(t2) diff_secs = int(t2_stamp - t1_stamp) print("两个时间之间相差的秒数:", diff_secs) 로그인 후 복사 输出: 两个时间之间相差的秒数: 86400 로그인 후 복사 在上述代码中,我们首先将两个时间t1、t2转换为时间戳t1_stamp、t2_stamp,接着计算两个时间戳之差得到时间差值(单位为秒)。 b. 时间加减计算 时间加减计算可以使用time模块中的mktime()函数和localtime()函数。我们可以将一个时间元组转换为时间戳,然后加上一段时间的秒数,再将结果转换为时间元组即可得到一个新的时间。以下是一个示例: import time t1 = (2019, 7, 18, 14, 30, 0, 0, 0, 0) t1_stamp = time.mktime(t1) days = 1 hours = 3 minutes = 30 seconds = 0 add_secs = days * 86400 + hours * 3600 + minutes * 60 + seconds new_stamp = t1_stamp + add_secs new_time = time.localtime(new_stamp) new_strftime = time.strftime("%Y-%m-%d %H:%M:%S", new_time) print("加上一段时间后的新时间:", new_strftime) 로그인 후 복사 输出: 加上一段时间后的新时间: 2019-07-19 18:00:00 로그인 후 복사 在上述代码中,我们首先将时间t1转换为时间戳t1_stamp,然后定义了要加的时间间隔,接着将时间间隔的总秒数计算出来,将其加上t1_stamp得到新的时间戳new_stamp,最后使用localtime()函数和strftime()函数将新的时间转换为字符串表示。
time模块中定义了很多函数用于对时间进行各种操作。 a. 时间比较 time模块中的函数cmp()、min()和max()可以用来比较时间的大小。 b. 时间运算 time模块中的函数add()、sub()可以用来对时间进行加减运算。 c. 时间格式化 time模块中还提供了一个函数asctime(),用于将时间元组转换为表示当地时间的字符串。 以下是一个示例: import time t = (2019, 7, 18, 14, 30, 0, 0, 0, 0) asctime = time.asctime(t) print("时间格式化字符串:", asctime) 로그인 후 복사 输出: 时间格式化字符串: Thu Jul 18 14:30:00 2019 로그인 후 복사 以上是time模块的基本使用方式和一些常用函数的介绍。通过学习并掌握time模块的使用方法,我们可以更加方便地进行Python编程中的时间操作与计算。 위 내용은 Python의 시간 모듈에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요! 원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
최신 이슈
SCSS를 사용하여 기본값 및 CSS 변수 생성
웹사이트 스타일링을 구현하고 있습니다. 레거시 지원상의 이유로 적어도 한동안은 IE11을 지원해야 합니다. 작업 흐름과 제정신의 이유로 가능할 때마다 CSS 변수...
에서 2024-04-06 17:46:54
0
1
355
바닥을 자체 높이의 100%로 설정
페이지 보기에서 숨겨지고 상단이 페이지 하단에 닿도록 요소를 설정하고 싶습니다(요소가 보이지 않음). 요소의 높이가 66px로 일정할 때 먼저 하단:-66px;'...
에서 2024-04-04 22:41:16
0
1
1438
다음은 Nodejs를 사용하는 미들웨어에서 제대로 작동하지 않습니다.
저는 Nodejs로 작업하고 expressjs를 사용하고 있으며 지금은 미들웨어 기능에 대해 작업 중입니다. 미들웨어 개념의 "다음" 작업이 무...
에서 2024-04-04 17:33:56
0
1
340
관련 주제
더>
|