Python 仅当时间是 5 时

Posted

技术标签:

【中文标题】Python 仅当时间是 5 时【英文标题】:Python Only If Time is 5 past the hour 【发布时间】:2018-10-22 16:35:45 【问题描述】:

如果时间在一小时内的特定分钟之间,我只想运行一段代码,但我不知道如何在 Python 中获取小时数。

php中的等效代码为:

if (intval(date('i', time())) > 15 && intval(date('i', time())) < 32) 
    // any time from hour:16 to hour:33, inclusive
 else 
    // any time until hour:15 or from hour:32

在 Python 中应该是这样的:

import time
from datetime import date
if date.fromtimestamp(time.time()):
   run_my_code()
else:
   print('Not running my code')

我通常会使用 cron,但这是在 Lambda 中运行的,我想确保这段代码不会一直运行。

【问题讨论】:

How to get current time in python and break up into year, month, day, hour, minute?的可能重复 【参考方案1】:

这是一种做法。

import datetime

# Get date time and convert to a string
time_now = datetime.datetime.now().strftime("%S")    
mins = int(time_now)

# run the if statement
if mins > 10 and mins < 50:
    print(mins, 'In Range')
else:
    print(mins, 'Out of Range')

【讨论】:

这是获取“分钟”字段的一种非常低效的方法 - 1) 将时间格式化为字符串 - HH-MM-SS,2) 检索仅包含分钟的子字符串 - 为什么要指定其他时间如果你不想要它们? 3)解析字符串并转换为整数。【参考方案2】:

datetime 类具有您可以使用的属性。你对minute attribute感兴趣。

例如:

from datetime import datetime

minute = datetime.now().minute

if minute > 15 and minute < 32:
    run_my_code()
else:
    print('Not running my code')

【讨论】:

【参考方案3】:

这是避免加载日期时间模块的单行代码:

if 5 < int(time.strftime('%M')) < 15:

上面的代码只会在整点后的 5 到 15 分钟之间运行(当然是当地时间)。

【讨论】:

以上是关于Python 仅当时间是 5 时的主要内容,如果未能解决你的问题,请参考以下文章

仅当访问 Laravel 5 中的根页面( visit('/') )时,PHPUnit 测试才会失败

仅当外键存在时才保存的标准方法是啥?

仅当用户在 Laravel 5.7 中处于活动状态时才登录用户

仅当两个字符串不存在且其他两个字符串存在时,我才需要一个 python re 来匹配

Vaadin 7 在执行后台线程后不刷新 UI(仅当它需要超过 5 分钟时)

仅当条件为 True 时才在 python 中使用 Eel 调用 JavaScript 函数