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 중국어 웹사이트의 기타 관련 기사를 참조하세요!