鱼C论坛

 找回密码
 立即注册
查看: 1522|回复: 9

python时间的问题

[复制链接]
发表于 2017-11-12 17:57:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我需要在python中比较时间,就是从系统中获得localtime然后比较这个时间是不是在我所要求的时间区域里。
目前我用的是time.strftime()和gmtime,
利用time.strftime('%H:%M:%S',time.gmtime()),这样我可以成功获得时分秒的时间。
但不知道怎么判断这个时间是不是在我要的时间区域呢,
比如我想知道这个时间是不是在04:00:00到08:00:00之间呢,要是不在这个时间区间,是不是在08:00:01到12:00:00之间呢,
求大神提点。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-12 18:17:09 | 显示全部楼层
1.gmtime获取的时间是格林尼治时间。
2.不一定啊,如果要判断时区就要知道格林尼治时间和时间差。time.timezone/3600:获取时间差

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-12 18:40:27 | 显示全部楼层
无符号整形 发表于 2017-11-12 18:17
1.gmtime获取的时间是格林尼治时间。
2.不一定啊,如果要判断时区就要知道格林尼治时间和时间差。time.tim ...

谢谢回复,我现在就在格林尼治时区,这个时间对我来说没有问题。就是不知道怎么去判断我获取的时间是不是在我要的时间区域里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-12 18:56:59 | 显示全部楼层
chunboh 发表于 2017-11-12 18:40
谢谢回复,我现在就在格林尼治时区,这个时间对我来说没有问题。就是不知道怎么去判断我获取的时间是不是 ...
  1. >>> time.timezone
  2. -28800
  3. >>> time.altzone
  4. -32400
  5. >>> time.tzname
  6. ('ÖD1ú±ê׼걼ä', 'ÖD1ú±ê׼걼ä')
  7. >>> [bytes(z,'l1').decode('gbk')for z in time.tzname]
  8. ['中国标准时间', '中国标准时间']
  9. >>>
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
无符号整形 + 5 + 5 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-12 19:20:30 | 显示全部楼层
@无符号整形 去哪里鬼混了?

点评

额,闭关研究驱动咯  发表于 2017-11-12 19:22
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-12 19:52:57 | 显示全部楼层

谢谢回复。灰常感谢这个很实用的时区技能。
我的问题是,获得了时间以后,我如何判断我的时间是不是在我要的时间区域里。
我现在想做的是通过时间来控制我的relay,当时间在早上的时候,我的relay是关闭的,时间在下午的时候我的relay是打开的。
从strftime('%h:%m:%s,gmtime())得到的时间是HH:MM:SS,我想去判断我获得的这个时间是不是在如下的几个时间序列里,
from 04:00:00 to 04:30:00
from 04:30:00 to 06:00:00
from 06:00:00 to 08:00:00
就像是数学中我们要判断一个点是不是在一个区间里面,如0.3∈(0,1),或者0.3∉(1,2),我需要用这个判断的False 和True去给外接的Relay命令。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-12 19:56:18 | 显示全部楼层

I need to tell my system to do its work according to the time.
If the time is inbetween 04:00:00  and 06:00:00, the relay will be open.
if the time is inbetween 06:00:00 and 08:00:00, the relay will be closed.
I care more about the time, not the date. The system will get the same assignment everyday.

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-12 23:24:08 | 显示全部楼层
本帖最后由 chakyam 于 2017-11-12 23:26 编辑

time.strftime('%H%M')返回的是一个string啊,提取出来判断一下就好了嘛
  1. t=time.strftime('%H%M')
  2. if t[0:2] in ['04','05'] or t == '0600':
  3.     pass
复制代码


定时任务的话我还是觉得用crontab好点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-13 04:44:23 | 显示全部楼层
chakyam 发表于 2017-11-12 23:24
time.strftime('%H%M')返回的是一个string啊,提取出来判断一下就好了嘛

谢谢提供信息,Crontab看起来是个很有用的package,我学习一下再回来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 22:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表