Python 如何以isoformate获取第二天的datetime

Python 如何以isoformate获取第二天的datetime,python,datetime,Python,Datetime,我正在使用谷歌日历API。 我读过《快速入门》 > eventsResult = service.events().list( calendarId='primary', timeMin=now, maxResults=10, singleEvents=True, orderBy='startTime').execute() 但是我尝试添加一个timeMax参数来过滤我得到的事件。 我希望从现在开始到今天结束活动。 我的起点是:

我正在使用谷歌日历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感到困惑。

我建议使用模块
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格式很重要,请忽略我的答案…;)

我建议改为使用模块
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格式很重要,请忽略我的答案…;)

>

>


我终于用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

我终于用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

您是否已将您的文件命名为当前目录中的文件
datetime
-datetime向您展示了什么?如果它不是像:
”/usr/lib/python3.5/datetime.py“
,它看起来像实际的Python库路径-这就是为什么:\Python\datetime.py
@Jon-oh,谢谢,我明白了这一点或者说是。。。这不是系统文件-看起来这是您当前的文件或您正在使用的目录中的文件…如果它是
datetime
这能工作吗
(datetime.datetime.now()+datetime.timedelta(days=1)).isoformat()
@erasmotg但是如果py在2017/8/9 06:29运行,我希望结果是2017/8/9/11:59。您是否将您的文件命名为当前目录中的文件
datetime
-
datetime.\uu file\uuu
向您展示了什么?如果它不是像:
”/usr/lib/python3.5/datetime.py“
,它看起来像实际的Python库路径-这就是为什么:\Python\datetime.py
@Jon-oh,谢谢,我明白了这一点或者说是。。。这不是系统文件-看起来这是您当前的文件或您正在使用的目录中的文件…如果它是
datetime
这能工作吗<代码>(datetime.datetime.now()+datetime.timedelta(days=1)).isoformat()@erasmotg但是如果py在2017/8/9 06:29运行,我希望结果是2017/8/9/11:59是的,我需要ISO格式。^^是的,我需要ISO格式。^^