python datetime模块

本文介绍了使用Python进行日期和时间的基本操作,包括获取当前日期时间、转换时间戳以及使用ctime显示日期时间等。这些操作对于日常编程任务非常有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

In [71]: datetime.datetime.now()
Out[71]: datetime.datetime(2018, 3, 12, 10, 31, 26, 801420)

In [72]: d = datetime.datetime.now()

In [73]: d
Out[73]: datetime.datetime(2018, 3, 12, 10, 32, 33, 561074)

In [74]: print d
2018-03-12 10:32:33.561074

In [75]: d.timetuple
Out[75]: <function timetuple>

In [77]: time.mktime(d.timetuple())
Out[77]: 1520821953.0

In [78]: t =time.mktime(d.timetuple())

In [79]: time.ctime(t)
Out[79]: 'Mon Mar 12 10:32:33 2018'
### Python `datetime` 模块使用指南 #### 1. 基础概念 Python 的 `datetime` 模块是一个用于处理日期和时间的标准库模块。它提供了一系列类来表示日期、时间和时间间隔等对象,并支持多种操作,如创建、解析、格式化以及计算日期和时间差值[^1]。 以下是该模块的主要组成部分及其功能: - **`date` 类**: 表示日期(年、月、日)。 - **`time` 类**: 表示一天中的具体时刻(小时、分钟、秒、微秒)。 - **`datetime` 类**: 同时表示日期和时间。 - **`timedelta` 类**: 表示两个日期或时间之间的差异。 - **`tzinfo` 抽象基类**: 提供时区信息的支持。 --- #### 2. 创建日期和时间对象 可以通过不同的方式创建日期和时间对象,例如通过当前时间或者指定参数。 ##### 获取当前日期和时间 可以使用 `datetime.now()` 方法获取当前的本地日期和时间。 ```python from datetime import datetime current_datetime = datetime.now() print(current_datetime) # 输出类似于:2023-09-18 14:37:56.123456 ``` 如果只需要日期部分,则可调用 `.date()` 方法提取日期对象;同样地,`.time()` 可提取时间部分[^1]。 ##### 手动创建特定日期/时间 也可以手动传入参数创建自定义的日期或时间对象。 ```python from datetime import date, time, datetime specific_date = date(2023, 9, 18) specific_time = time(14, 37, 56) specific_datetime = datetime(2023, 9, 18, 14, 37, 56) print(specific_date) # 输出:2023-09-18 print(specific_time) # 输出:14:37:56 print(specific_datetime) # 输出:2023-09-18 14:37:56 ``` --- #### 3. 格式化与解析日期字符串 经常需要将日期转换为字符串或将字符串解析为日期对象,这可通过 `strftime` 和 `strptime` 实现。 ##### 将日期对象转为字符串 (`strftime`) ```python formatted_date = current_datetime.strftime("%Y-%m-%d %H:%M:%S") print(formatted_date) # 输出类似于:2023-09-18 14:37:56 ``` 常用格式符包括 `%Y` (四位数年份),`%m` (两位数月份),`%d` (两位数天数),`%H` (24小时制小时数)[^1]。 ##### 解析字符串为日期对象 (`strptime`) ```python parsed_datetime = datetime.strptime("2023-09-18 14:37:56", "%Y-%m-%d %H:%M:%S") print(parsed_datetime) # 输出:2023-09-18 14:37:56 ``` --- #### 4. 计算日期和时间差 利用 `timedelta` 对象可以轻松实现加减运算,从而完成日期和时间的偏移计算。 ##### 添加或减少一段时间 ```python from datetime import timedelta future_datetime = current_datetime + timedelta(days=7, hours=3) past_datetime = current_datetime - timedelta(hours=12) print(future_datetime) # 当前时间往后推一周又三小时后的结果 print(past_datetime) # 当前时间往前退十二小时的结果 ``` ##### 计算两日期间的差距 ```python diff = future_datetime - past_datetime print(diff.days) # 差距的总天数 print(diff.seconds) # 额外剩余的秒数 ``` --- #### 5. 处理不同时区的数据 虽然基本的 `datetime` 不带有时区信息,默认为 naive 时间对象,但可以通过引入外部库(如 pytz 或 zoneinfo)扩展其能力以支持 aware 时间对象[^1]。 以下展示如何设置 UTC 时区并进行转换: ```python import pytz from datetime import datetime utc_zone = pytz.utc local_zone = pytz.timezone('Asia/Shanghai') naive_now = datetime.utcnow() # Naive UTC now aware_utc_now = utc_zone.localize(naive_now) # 转换为 Aware UTC Time shanghai_time = aware_utc_now.astimezone(local_zone) print(shanghai_time) # 上海当地时间 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值