Python 常见时间格式整理

写python时经常用到,但是经常弄混,现在使用gpt进行整理。

1. datetime.datetime

  • 来源:标准库 datetime
  • 特点:年月日 + 时分秒 + 微秒
  • 示例:
from datetime import datetime
dt = datetime(2025, 9, 30, 15, 30, 45)
print(dt)         # 2025-09-30 15:30:45
print(type(dt))   # <class 'datetime.datetime'>

2. datetime.date

  • 来源:标准库datetime
  • 特点:只有年月日
  • 示例:
from datetime import date
d = date(2025, 9, 30)
print(d)         # 2025-09-30
print(type(d))   # <class 'datetime.date'>

3. datetime.time

  • 来源:标准库datetime
  • 特点:只有时分秒
  • 示例:
from datetime import time
t = time(15, 30, 45)
print(t)         # 15:30:45
print(type(t))   # <class 'datetime.time'>

4. pandas.Timestamp

  • 来源:pandas
  • 特点:比datetime更强大,支持矢量化运算
  • 示例:
import pandas as pd
ts = pd.to_datetime("2025-09-30 15:30:45")
print(ts)         # 2025-09-30 15:30:45
print(type(ts))   # <class 'pandas._libs.tslibs.timestamps.Timestamp'>

5. pandas.DatetimeIndex

  • 来源:pandas
  • 特点:一组Timestamp 组成的索引
  • 示例:
import pandas as pd
dti = pd.date_range("2025-09-01", periods=5, freq="D")
print(dti)
# DatetimeIndex(['2025-09-01', '2025-09-02', ...], dtype='datetime64[ns]', freq='D')
print(type(dti))   # <class 'pandas.core.indexes.datetimes.DatetimeIndex'>

6. numpy.datetime64

  • 来源:numpy
  • 特点:底层储存格式,pandas内部常用
  • 示例:
import numpy as np
dt64 = np.datetime64("2025-09-30T15:30:45")
print(dt64)        # 2025-09-30T15:30:45
print(type(dt64))  # <class 'numpy.datetime64'>

常见混淆

  1. .index.date:返回datetime.date数组,和Timestamp比较可能报错。
  2. .normalize():保留Timestamp类型,但是会把时分秒置成零。
  3. cur.date():把Timestamp转成datetime.date
  4. Timestamp>=datetime.date会报错,需要转成同类型。

📋 使用对照表

方法 输入对象 输出对象 典型用途
.date() Timestamp datetime.date 提取日期
.time() Timestamp datetime.time 提取时间
.normalize() Timestamp Timestamp (日期零点) 日频对齐
.index.date DatetimeIndex numpy.array[date] 转成日期数组
.index.normalize() DatetimeIndex DatetimeIndex (日期零点) 批量日频化
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐