歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 程序員的日常:時間戳和時區的故事

程序員的日常:時間戳和時區的故事

日期:2017/3/1 9:19:15   编辑:Linux編程

什麼是時間戳(timestamp)?它和時區(timezone)又有什麼關系?初學者可能一開始很難搞懂時間戳這個概念,就像這期《程序員的日常》漫畫中的主人公一樣。

漫畫注釋

從漫畫中舉的例子來看,這裡的時間戳,指的就是Unix時間戳(Unix timestamp)。它也被稱為Unix時間(Unix time)、POSIX時間(POSIX time),是一種時間表示方式,定義為從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數。因此,嚴格來說,不管你處在地球上的哪個地方,任意時間點的時間戳都是相同的。這點有利於線上和客戶端分布式應用統一追蹤時間信息。

Unix時間戳不僅被使用在Unix系統、類Unix系統中,也在許多其他操作系統中被廣泛采用。但是,這並不意味著目前的時間戳規范會一直持續使用下去。因為到2038年1月19日時,Unix時間戳就會因為32位內存溢出(32-bit overflow)而無法繼續使用。因此,在這一天之前,上千萬的網絡應用要麼采用新的時間戳規范,要麼遷移到64位系統,後者可以給時間戳爭取“一點”時間。

Python中獲取時間戳並進行轉換

Python中日期信息的處理也是一大難點。這裡列舉幾個相關的用法。

獲取當前的時間戳

from time import time
time()
# 1453021629.990758

將時間戳轉換成datetime對象

from datetime import datetime

print datetime.fromtimestamp(1346236702)

#2012-08-29 11:38:22

將datetime對象轉換成可讀字符串

from datetime import date time

my_date_object = datetime.utcnow()

my_date_string = my_date_object.strftime('%Y-%m-%d')

END

Copyright © Linux教程網 All Rights Reserved