2024-05-16 15:29:35 发布
网友
我想将纪元时间戳(例如,et=1351036517.179364)转换为datetime.datetime对象。到目前为止,我用的是时间。ctime(et)给了我一个类似“2012年10月5日星期五22:20:33”的字符串。
最后,我需要datetime对象来计算两个数据点之间的时间差,另一个数据点也是datetime对象。
谢谢!
这是给那些被标题画在这里,但却得到了操作问题的答案的用户使用的
使用fromtimestamp作为引用in the documentation
fromtimestamp
Return the local date corresponding to the POSIX timestamp
下面是一个示例(由python生成)
import datetime as dt epoch = int(dt.datetime.utcnow().timestamp()) # example output: 1520020585
给定时间戳(例如1520020585),我们使用fromtimestamp将其转换回datetime tz naive对象,如下所示:
1520020585
import datetime as dt ts = 1520020585 # remember me? I'm the epoch dt.datetime.fromtimestamp(ts). # outputs: datetime.datetime(2018, 3, 2, 13, 56, 25)
要将POSIX时间戳转换为表示UTC时间的datetime.datetime对象,请执行以下操作:
datetime.datetime
from datetime import datetime, timedelta, timezone timestamp = 1351036517.179364 utc_time = datetime(1970, 1, 1, tzinfo=timezone.utc) + timedelta(seconds=timestamp) # -> 2012-10-23 23:55:17.179363+00:00
如果您的Python版本不支持datetime.timezone;可以省略它,以获得UTC格式的原始datetime对象。
datetime.timezone
I need the datetime object to compute time difference between two datapoints, the other datapoint is a datetime object as well.
如果naivedatetime对象表示具有不同UTC偏移量的本地时间,则不能直接进行比较,否则可能会得到错误的结果。您需要知道时区的datetime对象,或者应该先将datetime对象转换为UTC。见
datetime
值得记住的是,时间戳没有相关的时区信息。 Unix time是明确的UTC,但将本地时间存储在Unix风格的时间戳中并不罕见。你必须对照已知的参考资料来确定。
如果您的时间戳已经是UTC(Unix时间),您可以使用Marc B的建议,直接减去两个Unix时间戳,以给出它们之间的差异秒数。 然后,您可能需要创建一个timedelta,这将允许您轻松地使用它操作datetime(例如,您可以对datetime的时间增量进行求和或减去时间增量)。
datetime.timedelta( seconds= n_seconds )
如果时间戳在本地时间内,不要直接减去它们,否则可能会得到错误的结果。
相反,您应该先使用datetime.fromtimestamp,attach a timezone to each datetime,然后再减去它们得到时间增量。
要从timedelta转换回秒数,假设您使用的是python 2.7,那么timedelta.total_seconds。如果你有一个更早的版本,你必须手工计算,或者pip install datetime
timedelta
pip install datetime
这是给那些被标题画在这里,但却得到了操作问题的答案的用户使用的
TLDR公司
使用
fromtimestamp
作为引用in the documentation您有一个POSIX/UNIX/EPOCH时间戳
下面是一个示例(由python生成)
将时间戳转换为日期时间对象
给定时间戳(例如
1520020585
),我们使用fromtimestamp
将其转换回datetime tz naive对象,如下所示:要将POSIX时间戳转换为表示UTC时间的
datetime.datetime
对象,请执行以下操作:如果您的Python版本不支持
datetime.timezone
;可以省略它,以获得UTC格式的原始datetime对象。如果naive
datetime
对象表示具有不同UTC偏移量的本地时间,则不能直接进行比较,否则可能会得到错误的结果。您需要知道时区的datetime对象,或者应该先将datetime对象转换为UTC。见值得记住的是,时间戳没有相关的时区信息。 Unix time是明确的UTC,但将本地时间存储在Unix风格的时间戳中并不罕见。你必须对照已知的参考资料来确定。
如果您的时间戳已经是UTC(Unix时间),您可以使用Marc B的建议,直接减去两个Unix时间戳,以给出它们之间的差异秒数。 然后,您可能需要创建一个timedelta,这将允许您轻松地使用它操作
datetime
(例如,您可以对datetime的时间增量进行求和或减去时间增量)。datetime.timedelta( seconds= n_seconds )
如果时间戳在本地时间内,不要直接减去它们,否则可能会得到错误的结果。
相反,您应该先使用datetime.fromtimestamp,attach a timezone to each datetime,然后再减去它们得到时间增量。
要从
timedelta
转换回秒数,假设您使用的是python 2.7,那么timedelta.total_seconds。如果你有一个更早的版本,你必须手工计算,或者pip install datetime
相关问题 更多 >
编程相关推荐