一文掌握python时间模块time、datetime和zoneinfo

百科知识2025-04-272

在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