程式語言中轉換時間戳格式為日期時間
$datetime = date('Y-m-d H:i:s', $timestamp);
Date date = new Date(timestamp * 1000L);
import datetime; dt = datetime.datetime.fromtimestamp(timestamp)
const date = new Date(timestamp * 1000);
import pandas as pd; dt = pd.to_datetime(timestamp, unit='s')
datetime = Time.at(timestamp)
DateTime dateTime = DateTimeOffset.FromUnixTimeSeconds(timestamp).DateTime;
datetime('1970-01-01') + seconds(timestamp)
SELECT FROM_UNIXTIME(timestamp);
SELECT TO_DATE('1970-01-01', 'YYYY-MM-DD') + NUMTODSINTERVAL(timestamp, 'SECOND') FROM DUAL;
=TEXT(DATE(1970,1,1)+timestamp/86400, "yyyy-mm-dd hh:mm:ss")
Unix 時間戳(timestamp)是什麼?
Unix 時間戳(又稱 Unix 時間或 Epoch 時間)是一種以秒為單位記錄時間的方式,從 1970 年 1 月 1 日 00:00:00 UTC 開始計算。這個時間點稱為 Unix 紀元。
在計算機中,這是一個基本概念,因為它提供了一種簡單且一致的方法,可以在不同的系統和平台上表示時間。Unix 時間戳通常用於記錄事件、計算持續時間以及在各種應用程式之間同步時間。
由於它是基於 UTC 的,Unix 時間戳不會考慮時區或夏令時的變化。要將 Unix 時間戳轉換為當地時間,需要加上或減去適當的時區偏移量。
歷史上,Unix 時間戳以 32 位整數形式儲存,只能表示到 2038 年 1 月 19 日的日期。現代系統使用 64 位整數來處理未來的日期,從而避免了2038 年問題。
許多程式語言都提供了內建函數來處理 Unix 時間戳,這使得在人類可讀日期和 Unix 時間之間進行轉換變得非常容易。例如,JavaScript 的Date.now()和 Python 的time.time()都返回當前時間作為 Unix 時間戳。
為什麼要將時間戳轉換為人類可讀的日期和時間格式
時間戳對於電腦來說非常有用,但對我們人類來說並沒有太多意義。
將時間戳轉換為人類可讀的日期和時間,可以讓人們更容易理解某件事情發生的時間。這有助於記錄事件、安排行程以及在使用者介面中顯示日期。本質上,它彌補了電腦儲存時間的方式與我們人類感知時間的方式之間的差距。
如何將 Unix 時間戳(紀元時間)轉換為日期時間格式
2038 年問題到底是什麼?
2038 年問題,又稱 Unix 千年蟲或 Y2K38,是一個影響使用 32 位有符號整數表示 Unix 時間戳的系統的軟體問題。
Unix 時間戳從 1970 年 1 月 1 日 00:00:00 UTC 開始計算秒數。32 位有符號整數只能儲存最大值為 2,147,483,647 的數值,這對應於 2038 年 1 月 19 日 03:14:07 UTC。在此時間點之後,整數將溢出並重置為負值,導致系統將日期錯誤解釋為 1901 年 12 月 13 日。
這個問題可能會影響包括嵌入式設備、作業系統、資料庫和金融系統在內的廣泛系統,可能導致崩潰、錯誤和資料流失。
現代系統正在轉向使用 64 位整數,這可以處理更大的數值並避免這個問題。然而,一些舊系統和嵌入式設備可能仍然存在風險。
建議組織識別易受影響的系統,升級到 64 位表示方式,並進行徹底測試,以減輕 2038 年問題的影響。