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.