簡體   English   中英

在Python中將日期時間轉換為Unix時間戳

[英]Convert datetime to unix timestamp in python

當我嘗試從UTC時間戳轉換為正常日期並添加正確的時區時,我找不到將時間轉換回Unix時間戳的方法。

我在做什么?

utc_dt = datetime.utcfromtimestamp(self.__modified_time)
from_zone = tz.tzutc()
to_zone = tz.tzlocal()

utc = utc_dt.replace(tzinfo=from_zone)
central = utc.astimezone(to_zone)

中央等於

2015-10-07 12:45:04 + 02:00

這是我在運行代碼時所擁有的,我需要將時間轉換回時間戳。

from datetime import datetime
from datetime import timedelta
from calendar import timegm

utc_dt = datetime.utcfromtimestamp(self.__modified_time)
from_zone = tz.tzutc()
to_zone = tz.tzlocal()

utc = utc_dt.replace(tzinfo=from_zone)
central = utc.astimezone(to_zone)
unix_time_central = timegm(central.timetuple())

為了獲得一個表示您的本地時區中與給定Unix時間( self.__modified_time )相對應的時間的已知日期時間,您可以將本地時區直接傳遞給fromtimestamp()

from datetime import datetime
import tzlocal # $ pip install tzlocal

local_timezone = tzlocal.get_localzone() # pytz tzinfo
central = datetime.fromtimestamp(self.__modified_time, local_timezone)
# -> 2015-10-07 12:45:04+02:00

要使Unix時間回到Python 3:

unix_time = central.timestamp()
# -> 1444214704.0

unix_time等於self.__modified_time (忽略浮點錯誤和“正確的”時區)。 要獲取Python 2的代碼和更多詳細信息,請參見此答案

Arrowhttp://crsmithdev.com/arrow/ )似乎是終極的Python時間相關庫

import arrow
ts = arrow.get(1455538441)
# ts -> <Arrow [2016-02-15T12:14:01+00:00]>
ts.timestamp
# 1455538441

暫無
暫無

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

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