相关疑难解决方法(0)

在Python中将datetime.date转换为UTC时间戳

我正在处理Python中的日期,我需要将它们转换为UTC时间戳,以便在Javascript中使用.以下代码不起作用:

>>> d = datetime.date(2011,01,01)
>>> datetime.datetime.utcfromtimestamp(time.mktime(d.timetuple()))
datetime.datetime(2010, 12, 31, 23, 0)
Run Code Online (Sandbox Code Playgroud)

将日期对象首先转换为datetime也无济于事.我试过这个链接的例子,但是:

from pytz import utc, timezone
from datetime import datetime
from time import mktime
input_date = datetime(year=2011, month=1, day=15)
Run Code Online (Sandbox Code Playgroud)

现在要么:

mktime(utc.localize(input_date).utctimetuple())
Run Code Online (Sandbox Code Playgroud)

要么

mktime(timezone('US/Eastern').localize(input_date).utctimetuple())
Run Code Online (Sandbox Code Playgroud)

确实有效.

所以一般的问题:如何根据UTC获得自纪元以来转换为秒的日期?

python datetime utc

281
推荐指数
6
解决办法
51万
查看次数

使用strftime将python datetime转换为epoch

我有一段时间在UTC,从那里我想要自纪元以来的秒数.

我使用strftime将其转换为秒数.以2012年4月1日为例.

>>>datetime.datetime(2012,04,01,0,0).strftime('%s')
'1333234800'
Run Code Online (Sandbox Code Playgroud)

2012年4月1日UTC的纪元是1333238400但是这个上面返回1333234800,相差1小时.

所以看起来strftime正在考虑我的系统时间并在某个地方应用时区转换.我以为datetime纯粹是天真的?

我怎么能绕过那个?如果可能的话,避免导入其他库,除非标准.(我有可移植性问题).

python datetime utc strftime epoch

193
推荐指数
5
解决办法
27万
查看次数

如何将简单系统24小时格式转换为时间戳

我希望每天从下午4点到4点半之间从某个松弛的频道检索松弛的消息.Slack为https://api.slack.com/methods/channels.history提供了一个频道的Web API

上面的API提供了2个属性作为latest&oldest,这意味着我可以在这两个时间戳之间提取消息.但我的问题是这些是时间戳,我必须提出时间戳请求:

latest  1459750060.000002   #end

oldest  1459750060.000002   #start
Run Code Online (Sandbox Code Playgroud)

我想将2个数据作为简单的时间对象传递,即

latest_simple = 0430pm     #end
oldest_simple = 0400pm     #start
latest_real_format = convert_to_timestamp(latest_simple)
oldest_real_format = convert_to_timestamp(oldest_simple ) 
Run Code Online (Sandbox Code Playgroud)

所以,如果我能以某种方式获得时间戳,那么我将很容易地向API发送make请求

payload = {'token': 'XXXXXXXx', 'channel': 'C0L8MGLMN' , 'latest': latest_real_format , 'oldest':oldest_real_format  }
r = requests.get('https://slack.com/api/channels.history', params=payload)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 ?

timestamp slack-api slack

6
推荐指数
1
解决办法
6201
查看次数

将时间转换为纪元(Python)

我用tweepy来发推文.我试图通过Slack发送这条推文.Tweepy以奇怪的格式给出时间,Slack需要时间在epoch中.

for i in tweets:
    created=(i.created_at)
    print(created)
    print(created.strftime('%s'))
Run Code Online (Sandbox Code Playgroud)

这回来了

2017-01-17 14:36:26

Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\slackbot3\run.py", line 287, in main
print(created.strftime('%s'))
ValueError: Invalid format string
Run Code Online (Sandbox Code Playgroud)

怎么能把2017-01-17 14:36:26送到纪元时间?

python datetime epoch tweepy python-2.7

5
推荐指数
1
解决办法
6961
查看次数

在python字典中排序时间戳

mydict = [{'Counted number': '26', 'Timestamp': '8/10/2015 13:07:38'},{'Counted number': '14','Timestamp': '8/10/2015 11:51:14'},{'Counted number': '28','Timestamp': '8/10/2015 13:06:27'}, {'Counted number': '20','Timestamp': '8/10/2015 12:53:42'}]
Run Code Online (Sandbox Code Playgroud)

如何根据时间戳对此dict进行排序?

python sorting dictionary timestamp

3
推荐指数
2
解决办法
1万
查看次数

与pytz时区的datetime.不同的偏移量取决于tzinfo的设置方式

我今天遇到了一个有趣的情况.谁能解释为什么ts1和ts2的偏移量不同?ts1是一个日期时间对象,可立即识别时区.ts2是一个日期时间对象,它从时区开始并且替换了tzinfo.然而,他们最终得到不同的抵消.

>>> from pytz import timezone
>>> EST = timezone('America/New_York')
>>> ts1 = datetime.datetime.now(tz=EST)
>>> ts2 = datetime.datetime.now()
>>> ts2 = ts2.replace(tzinfo=EST)
>>> print ts1
2014-05-16 11:25:16.749748-04:00
>>> print ts2
2014-05-16 11:25:19.581710-05:00
Run Code Online (Sandbox Code Playgroud)

python timezone datetime pytz

2
推荐指数
2
解决办法
6064
查看次数