「Python系列」Python 日期和时间

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
应用实时监控服务-用户体验监控,每月100OCU免费额度
简介: Python 提供了多个内置模块来处理日期和时间,其中最常用的是 `datetime` 模块。这个模块提供了类来操作日期、时间、日期和时间间隔。

一、Python 日期和时间

Python 提供了多个内置模块来处理日期和时间,其中最常用的是 datetime 模块。这个模块提供了类来操作日期、时间、日期和时间间隔。

以下是一些基本的日期和时间操作:

  1. 导入模块
from datetime import datetime
  1. 获取当前日期和时间
now = datetime.now()
print(now)
  1. 格式化日期和时间
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date)
  1. 解析字符串为日期时间对象
date_string = "2023-10-23 12:34:56"
date_object = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(date_object)
  1. 日期和时间的算术运算
# 假设我们有两个日期
date1 = datetime(2023, 10, 23)
date2 = datetime(2023, 11, 23)

# 计算两个日期之间的天数差
delta = date2 - date1
print(delta.days)
  1. 其他有用的方法
* `datetime.today()`: 返回当前日期。
* `datetime.utcnow()`: 返回当前的UTC日期和时间。
* `datetime.fromtimestamp(timestamp)`: 从一个时间戳创建一个日期时间对象。
* `datetime.year`, `datetime.month`, `datetime.day`, `datetime.hour`, `datetime.minute`, `datetime.second`, `datetime.microsecond`: 访问日期和时间的各个部分。

二、时间元组(struct_time)

描述 属性名

4位数年| tm_year| 2008
月| tm_mon| 1 到 12
日| tm_mday| 1 到 31
小时| tm_hour| 0 到 23
分钟 | tm_min |0 到 59
秒| tm_sec| 0 到 61 (60或61 是闰秒)
一周的第几日| tm_wday| 0 到 6 (0是周一)
一年的第几日| tm_yday |一年中的第几天,1 到 366
夏令时| tm_isdst| 是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1

三、时间日期格式化符号

符号 描述

%y| 两位数的年份表示(00-99)
%Y |四位数的年份表示(000-9999)
%m| 月份(01-12)
%d |月内中的一天(0-31)
%H |24小时制小时数(0-23)
%I| 12小时制小时数(01-12)
%M| 分钟数(00=59)
%S |秒(00-59)
%a |本地简化星期名称
%A |本地完整星期名称
%b |本地简化的月份名称
%B |本地完整的月份名称
%c |本地相应的日期表示和时间表示
%j |年内的一天(001-366)
%p |本地A.M.或P.M.的等价符
%U |一年中的星期数(00-53)星期天为星期的开始
%w |星期(0-6),星期天为星期的开始
%W |一年中的星期数(00-53)星期一为星期的开始
%x |本地相应的日期表示
%X |本地相应的时间表示
%Z |当前时区的名称
%% |%号本身

四、Time(时间) 模块

Python 的 time 模块提供了各种与时间相关的函数。虽然 datetime 模块在处理日期和时间时更为强大和灵活,但 time 模块在处理时间戳和简单的时间操作时仍然很有用。

以下是一些 time 模块的基本用法:

  1. 导入模块
import time
  1. 获取当前时间戳

时间戳通常是从某个固定点(通常是1970年1月1日00:00:00 UTC)到现在的秒数。

timestamp = time.time()
print(timestamp)
  1. 将时间戳转换为本地时间
local_time = time.localtime(timestamp)
print(local_time)
  1. 将时间戳转换为格式化字符串
formatted_time = time.ctime(timestamp)
print(formatted_time)
  1. 睡眠(暂停执行)

sleep 函数可以让程序暂停指定的秒数。

time.sleep(5)  # 程序将暂停5秒
  1. 获取当前时间的各个部分
current_time = time.localtime()
year = current_time.tm_year
month = current_time.tm_mon
day = current_time.tm_mday
hour = current_time.tm_hour
minute = current_time.tm_min
second = current_time.tm_sec

print(f"Year: {year}, Month: {month}, Day: {day}, Hour: {hour}, Minute: {minute}, Second: {second}")
  1. 将结构化时间转换为时间戳
structured_time = time.struct_time((2023, 10, 23, 12, 34, 56, 0, 0, 0))
timestamp_from_structured = time.mktime(structured_time)
print(timestamp_from_structured)
  1. 性能计时

time 模块也可以用来测量代码段的执行时间。

start_time = time.time()

# 执行一些代码
for i in range(0, 1000000):
    pass

end_time = time.time()
elapsed_time = end_time - start_time
print(f"Elapsed time: 0.0707 seconds")

需要注意的是,time 模块处理的是时间戳和基于时间的简单操作,而 datetime 模块更适合处理日期和时间的复杂操作和格式化。在大多数情况下,如果你需要处理日期和时间,建议使用 datetime 模块。

五、Calendar(日历)模块

Python 的 calendar 模块提供了用于处理日历相关的功能,包括打印日历、计算周数和月中的某天是周几等。以下是一些 calendar 模块的基本用法:

  1. 导入模块
import calendar
  1. 打印当前月份的日历
print(calendar.month(2023, 10))  # 打印2023年10月的日历
  1. 打印一年的日历
print(calendar.calendar(2023))  # 打印2023年的日历
  1. 获取一个月的天数
days_in_month = calendar.monthrange(2023, 10)[1]
print(days_in_month)  # 输出2023年10月的天数
  1. 判断某个日期是周几
weekday = calendar.weekday(2023, 10, 23)
print(weekday)  # 输出0表示周一,1表示周二,以此类推
  1. 设置周的开始和结束

默认情况下,周一是每周的第一天,周日是最后一天。但你可以更改这些设置。

calendar.setfirstweekday(calendar.SUNDAY)  # 设置周日为每周的第一天
print(calendar.monthcalendar(2023, 10))  # 打印2023年10月的日历,此时周日为每周的第一天
  1. 获取指定周的月历
week_calendar = calendar.monthcalendar(2023, 10)
print(week_calendar[1])  # 打印2023年10月的第二周的日历
  1. 计算两个日期之间的周数
date1 = datetime.date(2023, 10, 1)
date2 = datetime.date(2023, 10, 31)
weeks_between = (date2 - date1).days // 7
print(weeks_between)  # 输出两个日期之间的周数

请注意,虽然 calendar 模块提供了一些基本的日历操作功能,但它不像 datetime 模块那样功能丰富和强大。在处理更复杂的日期和时间问题时,通常建议使用 datetime 模块。

六、相关链接

  1. Python下载安装中心
  2. Python官网
  3. Python软件下载
  4. 「Python系列」Python简介及案例
  5. 「Python系列」Python基础语法/数据类型
  6. 「Python系列」Python解释器
  7. 「Python系列」Python运算符
  8. 「Python系列」Python数据结构
  9. 「Python系列」Python元组
  10. 「Python系列」Python集合
  11. 「Python系列」Python列表
相关文章
|
1月前
|
Python
Datetime模块应用:Python计算上周周几对应的日期
Datetime模块应用:Python计算上周周几对应的日期
|
1月前
|
Python
Python编程获取当前日期的所属周日期信息
Python编程获取当前日期的所属周日期信息
|
1月前
|
数据挖掘 iOS开发 MacOS
利用Python计算农历日期
利用Python计算农历日期
|
1月前
|
数据处理 Python
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
|
2月前
|
数据挖掘 索引 Python
# Python 判断入参日期是周几
# Python 判断入参日期是周几 原创
|
1月前
|
调度 开发者 Python
python超详细的日期操作【建议收藏备用】
python超详细的日期操作【建议收藏备用】
14 0
|
1月前
|
Python
使用python计算两个日期之前的相差天数,周数
使用python计算两个日期之前的相差天数,周数
35 0
|
6月前
|
调度 Python
Python 日期
Python 日期
43 0
|
2月前
|
数据挖掘 索引 Python
PYTHON 判断入参日期是周几
PYTHON 判断入参日期是周几
|
4月前
|
存储 Python
Python之日期和时间包datetime的使用
1、基本定义 1.1 时间戳 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数(或总毫秒数)。 网上有很多时间戳在线转换工具,可以自行计算验证。