一文掌握python时间模块time、datetime和zoneinfo
在Python编程中,处理日期和时间是一项基本且频繁的任务。为了满足这一需求,Python提供了两个核心模块:time和datetime
一、time
1)、引入模块
首先,从引入time模块开始。
import time
2)、获取当前时间戳()
时间戳表示自1970年1月1日00:00:00(UTC)以来的秒数。可以这样获取:
import time
current_timestamp = ()
print("当前时间戳:", current_timestamp) # 当前时间戳: 1718592472.3103015
3)、获取时间元组()
用于将时间戳(即从1970年1月1日 00:00:00 UTC 开始经过的秒数)转换为本地时间的 struct_time 对象。这个转换考虑了系统的时区设置,使得时间更加符合用户所在地的显示习惯。
import time
获取当前时间的时间戳
current_timestamp = ()
将时间戳转换为本地时间的struct_time对象
local_time = (current_timestamp)
struct_time对象包含以下元素:
tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst
print("本地时间详情:", local_time) # time.struct_time(tm_year=2024, tm_mon=6, tm_mday=17, tm_hour=10, tm_min=53, tm_sec=22, tm_wday=0, tm_yday=169, tm_isdst=0)
年
print("年:", local_time.tm_year) # 年: 2024
月
print("月:", local_time.tm_mon) # 月: 6
日
print("日:", local_time.tm_mday) # 日: 17
同理,可使用local_time对象获取相应的其他属性
tm_year 表示年份,tm_mon 表示月份,tm_mday 表示日,tm_hour、tm_min 和 tm_sec 分别表示小时、分钟和秒。其他字段如 tm_wday 表示星期几(0表示周一),tm_yday 表示一年中的第几天,tm_isdst 表示夏令时标志(1表示夏令时,0表示非夏令时,-1表示不确定)。
4)、格式化时间输出
time 模块中的一个函数,用于将 struct_time 对象(或者可选地,直接使用时间戳)转换成一个表示时间的字符串。这个函数非常灵活,允许按照指定的格式字符串来格式化日期和时间。
1、完整日期和24小时时间格式:
import time
current_timestamp = ()
获取当前时间的struct_time对象
local_time = (current_timestamp)
定义时间格式
format_str = "%Y-%m-%d %H:%M:%S"
formatted_time = (format_str, local_time)
print("格式化时间:", formatted_time) # 格式化时间: 2024-06-17 10:48:26
格式化代码详解
在 format_str 中,可以使用一系列的格式化代码来定义输出字符串的布局。一些常用的格式化代码包括:
%Y:四位数的年份,如2023。
%m:月份,01到12。
%d:一个月中的第几天,01到31。
%H:小时(24小时制),00到23。
%M:分钟,00到59。
%S:秒,00到60(60可能出现在闰秒)。
%a:星期的简写,如Mon。
%A:星期的全称,如Monday。
%b:月份的简写,如Jan。
%B:月份的全称,如January。
%j:一年中的第几天,001到366。
%p:AM/PM标记(对于12小时制时间)。
%I:12小时制的小时,01到12。
%M:同分钟。
%S:同秒。
2、只显示日期(年月日):
import time
current_timestamp = ()
获取当前时间的struct_time对象
local_time = (current_timestamp)
format_str = "%Y%m%d"
print((format_str, local_time)) # 20240617
3、12小时时间格式加上上午/下午标记
import time
current_timestamp = ()
获取当前时间的struct_time对象
local_time = (current_timestamp)
format_string = "%I:%M:%S %p"
print((format_string, local_time)) # 11:09:41 AM
4、星期几的完整名称
import time
current_timestamp = ()
获取当前时间的struct_time对象
local_time