首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在python中将字符串转换为datetime对象并使用它执行一些与时间相关的计算

无法在python中将字符串转换为datetime对象并使用它执行一些与时间相关的计算
EN

Stack Overflow用户
提问于 2020-05-06 12:32:33
回答 2查看 58关注 0票数 0

我正在尝试做的是使用一个带有python的API来获取一个地方的当前日期时间,并从中提取日期时间。我拥有的代码是:

代码语言:javascript
运行
复制
import requests
import json
from datetime import datetime
import time

def get_current_time_from_api():
    response = (requests.get("http://worldtimeapi.org/api/ip")).json()
    return response["datetime"]

the_time = get_current_time_from_api()

当我使用print(the_time)打印响应时,返回的响应是:

代码语言:javascript
运行
复制
2020-05-06T10:04:51.368291+05:45

然后,我尝试使用datetime.strptime(the_time, "%X)函数将字符串转换为datetime来获取时间,我得到了错误ValueError: time data '2020-05-06T10:09:52.009222+05:45' does not match format '%X',那么,哪里出了问题,当从字符串中解析时间时,我该如何做呢?

代码语言:javascript
运行
复制
if(time == "10:00:00 pm"):
    #do something here
else:
    difference_in_minutes = "10:00:00" - current_time
    time.sleep(difference_in_minutes * 100) #sleeping for that many seconds
    #do stuff when the time is 10 pm
EN

回答 2

Stack Overflow用户

发布于 2020-05-06 12:48:45

我想您可能正在寻找fromisoformat方法。试试这个:

代码语言:javascript
运行
复制
import datetime as dt
dt.datetime.fromisoformat(the_time).strftime('%X')

Output:
'21:37:54'
票数 1
EN

Stack Overflow用户

发布于 2020-05-06 13:10:26

代码语言:javascript
运行
复制
from datetime import datetime
from dateutil.relativedelta import relativedelta

datetime_obj = datetime.strptime(
    '2020-05-06T10:04:51.368291+05:45', # your datetime string
    '%Y-%m-%dT%H:%M:%S.%f%z' # format of datetime
)

# this is how you can add a day to date_object
new_date = datetime_obj + relativedelta(days=1)

这是错误的,你应该使用datetime_objects来比较,比如:

代码语言:javascript
运行
复制
if new_date > datetime_obj: # this is true.
    # You can do things here
    print("Yes")

# if(time == "10:00:00 pm"), should be done like this:
if datetime_obj.time().hour == 10 and datetime_obj.time().min == 10:
    pass

有关日期时间格式,请参见:https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes

relativedelta:https://dateutil.readthedocs.io/en/stable/relativedelta.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61627468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档