python处理datetime类型

本文介绍了Python中处理datetime类型的方法,包括格式化输出时间、将时间字符串转换为datetime对象、计算时间差以及如何根据当前时间加减指定天数获取日期。

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

格式化输出时间,时间转字符串

import datetime

# des: 可以修改里面的间隔符号,如 %Y/%m/%d %H:%M:%S 等,格式化输出后type为  'str'
result = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# 输出结果:  2019-04-04 08:00:00

tmp = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S').split('-')
result1 = '{}年{}月{}日 {}时{}分{}秒'.format(tmp[0], tmp[1], tmp[2], tmp[3], tmp[4], tmp[5])
# 输出结果:  2019年04月04日 08时00分00秒

字符串str转datetime.datetime

import datetime

# des: 最后输出type为  'datetime.datetime'
str_time = '2019-04-04 08:00:00'
result = datetime.datetime.strptime(str_time, '%Y-%m-%d %H:%M:%S')
# 输出结果: 2019-04-04 08:00:00

str_time1 = '2019年04月04日 08时00分00秒'
result1 = datetime.datetime.strptime(str_time1, '%Y年%m月%d日 %H时%M分%S秒')
# 输出结果: 2019-04-04 08:00:00

计算段时间差

import datetime

start_time = '2019-04-04 08:00:00'
end_time = '2019-04-06 0
### Python `datetime.datetime` 类型的使用说明 #### 基本概念 `datetime.datetime` 是 Python 中的一个类,属于标准库模块 `datetime` 的一部分。它表示日期时间的组合,并提供了多种方法来处理时间日期的操作。 #### 创建 `datetime.datetime` 对象的方法 可以通过以下几种方式创建 `datetime.datetime` 对象: 1. **通过指定年月日时分秒微秒** 可以直接入参数创建一个具体的日期时间对象。 ```python from datetime import datetime dt = datetime(2023, 10, 5, 14, 30, 0) # 年、月、日、小时、分钟、秒 print(dt) ``` 2. **从当前本地时间获取** 使用 `now()` 或 `today()` 方法可以从系统中获取当前的时间。 ```python now = datetime.now() # 获取当前本地时间 today = datetime.today() # 同样返回当前本地时间 print(now, today) ``` 3. **从时间戳转换** 时间戳是一个浮点数,代表自 Unix 纪元以来的秒数。可以将其转换为 `datetime` 对象[^4]。 ```python timestamp = 1696478400.0 # 示例时间戳 dt_from_timestamp = datetime.fromtimestamp(timestamp) print(dt_from_timestamp) ``` #### 主要属性 以下是 `datetime.datetime` 提供的一些常用属性: - `.year`: 返回年份部分。 - `.month`: 返回月份部分。 - `.day`: 返回天的部分。 - `.hour`, `.minute`, `.second`, `.microsecond`: 分别对应时间的不同组成部分。 - `.tzinfo`: 表示时区信息的对象(如果存在的话),默认为 `None`。 - `.fold`: 如果有重复时刻的情况,则此字段用来区分两个可能的时间点[^1]。 #### 主要方法 这里列举一些常用的实例方法以及静态/类方法: 1. **替换某些组件** 使用 `replace()` 方法修改某个特定成分而不影响其他部分。 ```python new_dt = dt.replace(year=2024, hour=10) print(new_dt) ``` 2. **格式化输出** 利用 `strftime(format)` 将其转化为字符串形式。 ```python formatted_date = dt.strftime('%Y-%m-%d %H:%M:%S') print(formatted_date) ``` 3. **解析字符串到日期时间** 静态方法 `strptime(date_string, format)` 能够按照给定模式把字符串转回成 `datetime` 实例。 ```python parsed_datetime = datetime.strptime('2023-10-05', '%Y-%m-%d') print(parsed_datetime) ``` 4. **加减运算** 结合 `timedelta` 进行增减操作[^3]。 ```python from datetime import timedelta delta = timedelta(days=7, hours=3) future_time = dt + delta past_time = dt - delta print(future_time, past_time) ``` 5. **比较大小** 支持与其他同类型变量做对比判断谁更早或者晚些时候发生。 #### JSON 序列化注意事项 当尝试将 `datetime.datetime` 存储至 JSON 文件时需要注意,默认情况下无法序列化这些复杂数据结构;因此需定义额外处理器函数完成转化工作[^5]。 ```python import json def serialize(obj): if isinstance(obj, datetime): return obj.isoformat() json_str = json.dumps({"time": dt}, default=serialize) print(json_str) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值