【发布时间】:2012-10-26 22:16:10
【问题描述】:
我正在尝试编写一对函数,plottm 和 unixtm,它们在正常的 unix 时间(自 1970-01-01 以来的秒数)和 Matplotlib 的日期表示(自最后一天以来的天数)之间来回转换-1BC 之类的,一个浮点数)。
如果 plottm 和 unixtm 是正确的倒数,则此代码将打印相同的日期/时间两次:
import time, datetime
import matplotlib.dates as dt
# Convert a unix time u to plot time p, and vice versa
def plottm(u): return dt.date2num(datetime.datetime.fromtimestamp(u))
def unixtm(p): return time.mktime(dt.num2date(p).timetuple())
u = 1270000000
print datetime.datetime.fromtimestamp(u), "-->", \
datetime.datetime.fromtimestamp(unixtm(plottm(u)))
唉,它已经关闭了一个小时(这只发生在某些时间戳上,否则我会插入一个偏移量并完成它)。
更新:不特定于 Matplotlib 的相关问题:Convert a unixtime to a datetime object and back again (pair of time conversion functions that are inverses)
【问题讨论】:
标签: python date datetime matplotlib