Python datetime.date 类中的 fromtimestamp() 函数


Python 的 `datetime.date` 类的 `fromtimestamp()` 函数用于将时间戳转换为日期对象。时间戳表示自纪元(1970年1月1日00:00:00 UTC)以来的持续时间。本文将介绍 `fromtimestamp()` 函数的语法和使用方法,并提供一些 Python 代码示例,以帮助您理解其实际应用。

语法

datetime.date.fromtimestamp(timestamp)

该方法返回一个表示时间戳的日期对象,只需要一个输入参数:以秒为单位的时间戳值。由于它是 `datetime.date` 类的类方法,因此必须使用类名来访问 `fromtimestamp()` 函数。

算法

`fromtimestamp()` 函数的算法可以描述为以下步骤:

  • 将时间戳值作为参数解析。

  • 使用 `datetime.fromtimestamp()` 方法将纪元时间戳转换为表示日期时间的对象。

  • 从日期时间对象中提取年份、月份和日期值,并使用这些提取的值实例化一个日期对象。

示例

import datetime

# create a timestamp value
timestamp = 1609459200
date_obj = datetime.date.fromtimestamp(timestamp)

# print the date object
print(date_obj)

输出

2021-01-01

要使用 `date` 类,我们导入 `datetime` 模块。生成时间戳值 1609459200,它对应于 2021年1月1日 UTC 00:00:00。使用 `date` 类的 `fromtimestamp()` 函数,并将时间戳值作为输入传递。该方法在将其转换为日期时间对象之前,会从时间戳值中提取年份、月份和日期值。之后,它会生成一个使用检索到的信息创建的日期对象。`date_obj` 变量用于保存返回的日期对象,最后打印日期对象,显示值为 2021-01-01。

一个更实际的例子如下所示。

假设您有一个包含金融交易数据集的 CSV 文件,每个交易都有一个Unix 格式的时间戳(即自纪元以来的秒数)。为了生成一份显示每天交易总额的汇总报告,需要从每笔交易中提取日期信息。

示例

import pandas as pd
import datetime

# mock dataframe with transaction data
data = {
   'timestamp': [1609459200, 1609459200, 1609545600, 1609545600, 1609632000], 'amount': [100.0, 200.0, 300.0, 400.0, 500.0]
}
df = pd.DataFrame(data)
# dict to accumulate transaction amounts by date
daily_totals = {}

# iterate over the transactions and accumulate totals by date
for index, row in df.iterrows():
   date = datetime.date.fromtimestamp(row['timestamp'])
   daily_totals[date] = daily_totals.get(date, 0) + row['amount']

# print generated summary report
print('Date\tTotal Amount')
print('-------------------')
for date, total in sorted(daily_totals.items()):
   print('{}\t${:,.2f}'.format(date.strftime('%Y-%m-%d'), total))

输出

Date	Total Amount
-------------------
2021-01-01	$300.00
2021-01-02	$700.00
2021-01-03	$500.00

这里,交易时间戳和金额应放在您首先使用 Python 字典生成的伪数据框的两个单独列中。为了按日期对交易总额进行分组,我们然后构建一个空字典。接下来,我们使用 `iterrows()` 方法遍历数据框,使用 `fromtimestamp()` 函数提取日期信息,并使用交易金额更新每日总额字典。最后,在按日期对每日总额字典中的元素进行排序并将结果构造为包含日期和总金额列的表格后,我们打印汇总报告。

应用

  • 将数据库中的时间戳值转换为日期对象。

  • 处理包含时间戳值的日志文件。

  • 将纪元时间值转换为日期对象。

结论

在这篇文章中,我们研究了 Python `datetime.date` 类的 `fromtimestamp()` 方法。除了讨论函数的语法和方法之外,我们还提供了一个 Python 代码示例来演示如何使用它。我们还介绍了该函数的许多潜在用途。本教程中的练习应该提高您在自己的 Python 脚本中使用 `fromtimestamp()` 方法将时间戳值转换为日期对象的能力。

更新于:2023年4月18日

4K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.