【问题标题】:Converting integer to datetime in Python [closed]在Python中将整数转换为日期时间[关闭]
【发布时间】:2012-03-30 18:43:39
【问题描述】:

我的代码:

import datetime as dt
import scikits.timeseries as ts

ts_start_datetime= ts.Date(freq='T',year=2011,month=1,day=1,hour= 0,minute=0)
ts_end_datetime = ts.Date(freq='T',year=2011,month=12,day=31,hour=23,minute=45)

start_val = ts_start_datetime.value
#   21564001
end_val = ts_end_datetime.value
#   22089586

如何将start_valend_val 转换为datetime 对象?

【问题讨论】:

    标签: python datetime scikits


    【解决方案1】:

    使用datetime.fromtimestamp(),因为您的值似乎是分钟而不是秒,所以首先将它们乘以 60:

    start_dt = dt.datetime.fromtimestamp(start_val * 60)
    end_dt = dt.datetime.fromtimestamp(end_val * 60)
    

    如果您想要 UTC 时间而不是本地时间,请使用 datetime.utcfromtimestamp()

    >>> dt.datetime.utcfromtimestamp(21564001 * 60)
    datetime.datetime(2011, 1, 1, 0, 1)
    >>> dt.datetime.utcfromtimestamp(22089586 * 60)
    datetime.datetime(2011, 12, 31, 23, 46)
    

    我不完全确定为什么每一个都比你开始的时间晚一分钟,你总是可以在通话前减去 60 或从最终结果中减去 dt.timedelta(minutes=1)

    【讨论】:

    • 我猜它们是包容性的——它们包括结束的那一分钟,而不是在那一分钟的一开始就结束。否则,如果一个范围结束而另一个范围立即开始,他们将共享开始/结束分钟。
    • 谢谢! F.J 快速回答。
    • 没问题,如果此解决方案有效,您可以通过单击答案旁边的复选标记的轮廓accept it
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-20
    • 2019-02-16
    • 2019-06-01
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多