Python Datetime.date类的fromtimestamp()函数
Python datetime.date类的 fromtimestamp() 函数用于将时间戳转换为日期对象。时间戳实际上表示自 纪元 (发生在1970年1月1日 00:00:00 UTC)以来的持续时间。为了帮助您理解fromtimestamp()函数的实际用途,我们将在本博客文章中介绍使用它的语法和编码实践,并附上不同的Python代码示例。
语法
datetime.date.fromtimestamp(timestamp)
该方法返回一个表示时间戳的日期对象,只需要一个输入,即以秒为单位的时间戳值。由于fromtimestamp()是datetime.date类的类方法,所以必须使用类名来访问该函数。
步骤
fromtimestamp()函数的算法可以描述如下步骤:
- 将时间戳作为参数解析。
-
利用 datetime.fromtimestamp() 方法将纪元时间戳转换为表示日期时间的对象。
-
从日期时间对象中提取年、月和日值,并使用这些提取的值实例化一个日期对象。
示例1
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()函数,将时间戳值作为输入。该方法从时间戳值中提取年、月和日的值,然后将其转换为datetime对象。然后,它生成一个使用提取的信息创建的日期对象。date obj变量用于保存返回的日期对象,最后打印日期对象,显示值为2021-01-01。 一个更实用导向的例子如下。 假设您有一个包含财务交易数据集的CSV文件,每个交易都有一个Unix格式(即自纪元以来的秒数)的时间戳。为了制作一个汇总报告,显示每天的交易总金额,需要提取每个交易的日期信息。
示例2
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-02700.00
2021-01-03 $500.00
在这里,事务的时间戳和金额应该放置在一个假的数据帧中的两个单独的列中,您可以首先使用Python字典生成。为了按日期分组交易总额,我们建立一个空字典。 接下来, 我们使用 iterrows() 方法遍历数据帧,使用fromtimestamp()函数提取日期信息,并使用交易金额更新每日总额字典。最后,我们通过日期对每日总额字典中的元素进行排序,并将结果按照日期和总金额列的结构作为一张表格打印出来。
应用
- 将数据库中的时间戳值转换为日期对象。
-
处理包含时间戳值的日志文件。
-
将纪元时间值转换为日期对象。
结论
本博客文章介绍了Python datetime.date类的fromtimestamp()方法。除了讨论函数的语法和方法论外,我们还包含了一个Python代码示例,展示了如何使用它。还介绍了该函数的许多潜在用途。通过这个教程中的练习,你应该能够更好地利用fromtimestamp()方法将时间戳值转换为日期对象,应用于自己的Python脚本中。