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