Python中time模块用法示例详解

前言

        仅供个人学习用,如果对各位朋友有参考价值,给个赞或者收藏吧 ^_^

一、time模块介绍

        time模块是Python中处理时间相关操作的核心工具,提供了时间获取、格式化、转换、延迟以及计时等多种功能。

        总的来说time模块中时间可以有3种格式:时间戳,时间元组和时间字符串,其中时间字符串可以自行定制格式。time模块的方法大部分是针对这几种时间格式进行输出,处理和转化。

时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

下面本文对常用的Time方法进行介绍。

二、Time模块的主要功能

1. 时间获取

(1)time.time()

返回当前时间的时间戳(自1970年1月1日00:00:00 UTC以来的秒数)。

注意:time.time()的括号内没有参数,下面是代码举例:

import time
timestamp = time.time()
print("当前时间戳:", timestamp)
# 输出:当前时间戳: 1720363892.180193

(2)time.localtime([secs])

将时间戳(默认为当前时间)转换为本地时间的struct_time对象(时间元组格式)。时间元组是另一种表示时间的方式,其格式为(tm_year,tm_mon,tm_mday,tm_hour,tm_min, tm_sec,tm_wday,tm_yday,tm_isdst),下面是每个元素的含义:

tm_year:         年

tm_mon:         月,范围为[1,12]

tm_mday:       一个月的第几天,范围为[1,31]

tm_hour:         小时,范围为[0,23]

tm_min:          分,   范围为[0,59]

tm_sec:          秒,范围为[0,59]

tm_wday:        一周中的第几天,范围是[0,6],周一为0

tm_yday:         一年中的第几天,范围是[1,366]

tm_isdat:          1代表夏令时

 demo示例

import time
timestamp = time.time()
print("当前时间戳:", timestamp)
local_time = time.localtime()  # 括号内不加参数,表示将当前(北京)时间转换为时间元组。
print("本地时间:\n", local_time)
yesterday_time = time.localtime(timestamp-24*60*60)  # 返回当前时间前一天的时间元组
print('当前时间前一天的时间元组:\n', yesterday_time)
year = time.localtime().tm_year  # 访问时间元组中的某项,如调用tm_year
print('年份:', year)

output输出

当前时间戳: 1720364587.5937397
本地时间:
 time.struct_time(tm_year=2024, tm_mon=7, tm_mday=7, tm_hour=23, tm_min=3, tm_sec=7, tm_wday=6, tm_yday=189, tm_isdst=0)
当前时间前一天的时间元组:
 time.struct_time(tm_year=2024, tm_mon=7, tm_mday=6, tm_hour=23, tm_min=3, tm_sec=7, tm_wday=5, tm_yday=188, tm_isdst=0)
年份: 2024

(3)time.gmtime([secs])

将时间戳(默认为当前时间)转换为UTC(格林威治)时间的struct_time对象。也就是说类似于time.localtime(),不过一个是默认北京时间作为输出,一个是根据格林威治时间输出。

demo

import time
local_time = time.localtime()
print("本地时间:\n", local_time)
local_time1 = time.gmtime()
print("UTC本地时间:\n", local_time1)

output

本地时间:
 time.struct_time(tm_year=2024, tm_mon=7, tm_mday=7, tm_hour=23, tm_min=13, tm_sec=15, tm_wday=6, tm_yday=189, tm_isdst=0)

UTC本地时间:
 time.struct_time(tm_year=2024, tm_mon=7, tm_mday=7, tm_hour=15, tm_min=13, tm_sec=15, tm_wday=6, tm_yday=189, tm_isdst=0)

2. 时间转换

(1)time.mktime(t)

struct_time对象(时间元组)转换为时间戳。

注意该方法括号内必须要有时间元组参数

demo

import time
timestamp = time.time()
print("当前时间戳:", timestamp)
local_time = time.localtime()  # 括号内不加参数,表示将当前时间转换为时间元组。
print("本地时间:\n", local_time)
print(type(local_time))
timestamp1 = time.mktime(time.localtime())
print("时间戳:", timestamp1)

output

当前时间戳: 1720365737.5152326
本地时间:
 time.struct_time(tm_year=2024, tm_mon=7, tm_mday=7, tm_hour=23, tm_min=22, tm_sec=17, tm_wday=6, tm_yday=189, tm_isdst=0)
<class 'time.struct_time'>
时间戳: 1720365737.0

(2)time.asctime([t]) 和 time.ctime([secs])

两者都用于将时间戳或struct_time对象转换为可读的字符串表示,但ctime直接接受时间戳,而asctime接受struct_time对象。

demo

import time
timestamp = time.ctime()  # 返回当前时间字符串
print("ctime当前时间:\n", timestamp)
times = time.ctime(time.time())  # 参数为时间戳
print('参数为时间戳的ctime当前时间:\n', times)
timestamp1 = time.asctime()  # 返回当前时间字符串
print("asctime当前时间:\n", timestamp1)
times1 = time.asctime(time.localtime())  # 参数为时间元组
print('参数为时间元组的asctime当前时间:\n', times1)
times2 = time.asctime((1, 1, 1, 1, 1, 1, 1, 1, 1))  # 给定元组,返回时间字符串
print('asctime的参数给定元组,返回时间字符串:\n', times2)

output

ctime当前时间:
 Sun Jul  7 23:41:57 2024
参数为时间戳的ctime当前时间:
 Sun Jul  7 23:41:57 2024
asctime当前时间:
 Sun Jul  7 23:41:57 2024
参数为时间元组的asctime当前时间:
 Sun Jul  7 23:41:57 2024
asctime的参数给定元组,返回时间字符串:
 Tue Jan  1 01:01:01 1

3. 时间格式化

(1)time.strftime(format[, t])

将指定的struct_time对象(默认为当前时间)按照给定的格式字符串format转换成字符串。常用的格式化字符包括%Y(四位数的年份)、%m(月份)、%d(日)、%H(小时,24小时制)、%M(分钟)、%S(秒)等。

demo

import time

# time.strftime(format[, t]) 下面formatted_time是返回当前日期和时间的字符串
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("格式化时间:", formatted_time)

# time.strptime(string[, format]):将时间字符串解析为struct_time对象。
specific_time = time.strptime("2023-04-01 12:00:00", "%Y-%m-%d %H:%M:%S")
print(specific_time)

# 使用指定的struct_time对象
formatted_specific_time = time.strftime("%A, %B %d %Y", specific_time)
print("特定格式化时间:", formatted_specific_time)

output

格式化时间: 2024-07-08 00:00:07

time.struct_time(tm_year=2023, tm_mon=4, tm_mday=1, tm_hour=12, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=91, tm_isdst=-1)

特定格式化时间: Saturday, April 01 2023

(2)time.strptime(string[, format])

将符合指定格式format的时间字符串string转换为struct_time对象。或者说字符串时间按照一定时间格式解析为时间元组。

已在上面的(1)strftime 示例中展示。

4. 时间延迟

(1) time.sleep(secs):使程序暂停执行指定的秒数。

demo

import time
print("开始等待...")  
time.sleep(3)  
print("等待结束")
  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值