我正在使用Google Calendar API 我已经阅读了快速入门
> eventsResult = service.events().list(
calendarId='primary', timeMin=now, maxResults=10, singleEvents=True,
orderBy='startTime').execute()
但是我尝试添加一个timeMax参数来过滤我得到的事件 我希望从现在到今天结束这个活动 我从:
开始> import datetime
now = datetime.datetime.now()
然后我得到了:
AttributeError: module 'datetime' has no attribute 'now'
我读到大多数编码人员对datetime.datetime感到困惑。
答案 0 :(得分:0)
我建议改用模块time
。使用没有参数传递的函数localtime
,您可以生成精确到秒的时间戳。
示例强>
>>> import time
>>> ts = time.localtime()
>>> print ts
time.struct_time(tm_year=2017, tm_mon=8, tm_mday=9, tm_hour=12, tm_min=39, tm_sec=50, tm_wday=2, tm_yday=221, tm_isdst=0)
>>> print ts.tm_year, ts.tm_mon, ts.tm_mday
2017 8 9
>>> print ts[3:6]
(12, 39, 50)
如您所见,您有几种方法可以从时间戳中提取信息。
<强> [编辑] 强>
如果时间戳的ISO格式很重要,请忽略我的答案......;)
答案 1 :(得分:0)
>>> import datetime as dt
>>> from datetime import date,timedelta
>>> dt.datetime.today() - timedelta(days=-1)
#datetime.datetime(2017, 8, 10, 18, 16, 29, 785131)
>>> Td = dt.datetime.today() - timedelta(days=-1)
>>> Td
#datetime.datetime(2017, 8, 10, 18, 16, 41, 786500)
>>> Td = Td.isoformat()
>>> Td
#'2017-08-10T18:16:41.786500'
&GT;
答案 2 :(得分:0)
我终于用datetime解决了这个问题。
import datetime
now = datetime.datetime.now()
night = now.replace(hour=23, minute=59)
#I'm at UTC+8
utcNow = now-datetime.timedelta(hours=8)
utcnight = night - datetime.timedelta(hours=8)
print (utcNow.isoformat() + 'Z')
print(utcnight.isoformat() + 'Z')
2017-08-10T02:48:16.413384Z
2017-08-10T15:59:16.413384Z
当地时间是:
2017-08-10 10:48:16.413384Z
2017-08-10 23:59:16.413384Z