簡體   English   中英

將Unix時間戳值轉換為人類可讀的python

[英]Convert Unix timestamp value to human readable python

我有一個Unix時間戳,其值為1502878840 這個Unix時間戳值可以轉換為人類可讀,如Aug 16, 2017 10:20:40 我有2個以下python代碼將1502878840轉換為Aug 16, 2017 10:20:40 兩者都給出相同的結果( Aug 16, 2017 10:20:40

  1. 第一種方法
    utc = datetime.fromtimestamp(1502878840)
  2. 第二種方法
    utc = datetime(1970, 1, 1) + timedelta(seconds=1502878840)

任何人都可以回答我2以下的問題。
1.兩種方法的結果相同。 但是在Python代碼的邏輯觀點上,是否有任何可能導致結果差異的情況?
我問這個問題,因為我看到大多數python代碼都使用First方法。
2.正如我在此讀到的那樣,Unix時間將在2038年1月19日03:14:08 GMT出現問題。
我運行一個時間戳,其日期是在19日,2038年( 2148632440 - Feb 01, 2038 10:20:40 )。 結果如下
第一種方法: ValueError: timestamp out of range for platform time_t
第二種方法: 2038-02-01 10:20:40
問題是:我可以使用第二種方法來解決“2038年問題”的問題嗎?

引用文檔

如果時間戳超出平台C localtime()或gmtime()函數支持的值范圍,並且localtime()或gmtime()失敗時出現OSError,則fromtimestamp()可能引發OverflowError。 這種情況通常限制在1970年到2038年。請注意,在非POSIX系統中,在時間戳概念中包含閏秒,fromtimestamp() 會忽略閏秒 ,然后可能有兩個時間戳不同的時間戳一秒鍾產生相同的日期時間對象。 另請參見utcfromtimestamp()。

第二個解決方案解決了您的問題:

utc = datetime(1970, 1, 1) + timedelta(seconds=1502878840)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM