首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python中仅在特定时间以x开头时打印

如何在Python中仅在特定时间以x开头时打印
EN

Stack Overflow用户
提问于 2019-08-06 22:20:30
回答 4查看 252关注 0票数 1

大家好,我是一个学习python的新手,我只想打印当前时间以x开头的内容(例如,如果当前时间以= 4开始,则打印" Hi ",time = 4:18),这是我编写的代码,它显示属性错误:

代码语言:javascript
复制
import datetime

local = datetime.datetime.now().time().replace(microsecond=0)


if local.startswith('16'):
    print("Hi! It's ", local)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-08-06 22:23:50

.replace()方法返回一个date对象。date对象没有.startswith()方法。该方法仅适用于str

请先尝试将日期转换为字符串:

代码语言:javascript
复制
if str(local).startswith('16'):
    print("Hi! It's ", local)

The documentation列出了date对象上所有可用的方法。

票数 0
EN

Stack Overflow用户

发布于 2019-08-06 22:24:32

您需要首先将其转换为string,因为datetime对象没有startswith()方法。使用strftime,示例:

代码语言:javascript
复制
import datetime
t = datetime.datetime(2012, 2, 23, 0, 0)
t2 = t.strftime('%m/%d/%Y')

将产生:

'02/23/2012'。一旦它被转换,你就可以使用t2.startswith()了。https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior

票数 0
EN

Stack Overflow用户

发布于 2019-08-06 22:29:58

您可以获取该时间的小时数,并检查是否为16:

代码语言:javascript
复制
if local.hour == 16:
   print("Hi! It's ",local)

如果您需要使用startswith(),则可以将其转换为如下所示的字符串:

代码语言:javascript
复制
if str(local).startswith('16'):
    print("Hi! It's ", local)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57378200

复制
相关文章

相似问题

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