资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

python现在时间函数的简单介绍

python函数深入浅出 16.time.sleep()函数详解

time.sleep() 函数命名来源于英文单词time(时间)和sleep(睡眠)。

龙凤网站建设公司创新互联,龙凤网站设计制作,有大型网站制作公司丰富经验。已为龙凤成百上千家提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的龙凤做网站的公司定做!

time 是python带的非内置库,使用时需要import,主要用于处理和时间相关的操作。

time.sleep用于给定时间内挂起(等待)当前线程的执行。

time.sleep() 函数的例子:

可以注释掉time.sleep(2)再运行一次对比一下

可以看到虽然都是打印出一样的结果,但time.sleep()加入了等待时间

这里还要解释一下python中线程与进程的区别。

举个例子,厨房做菜看成是一个进程,那么这个进程下面就可能有多个人或一个人(cpu基本执行单元,即线程)来执行,多个人可以分别洗菜,刷碗,摆盘等等同时作业,他们又是共享这个厨房的资源的。每个人存在一定的资源竞争关系,比如炉火只有1个。

这里time.sleep是针对线程执行的,也就是其中一个人去sleep睡觉了,不影响其他人的继续工作。

参数

该函数没有返回值。

结果类似如下:

可以看到秒数相差了5

time.sleep()常用于推迟执行的场景

在python中,与时间相关的模块有:time,datetime以及calendar

对基础运行环境有疑问的,推荐参考: python函数深入浅出 0.基础篇

python数字怎么转变时间?

5位数日期戳读取 .mat 文件处理里面数据时,发现里面的日期数据全部都是 “5位数” 数字,很不解;后来查到可以在excel中通过设置单元格调回标准日期格式,如下:选中日期戳,右键选择 “格式化单元格(Format Cells)”选择需要的日期格式,点击ok即可通过代码转成标准日期例如这个DataFrame中的日期,全部都是“日期戳”格式的,但我需要的是人能看懂的“标准日期”;确认起始日期首先需拿一个“日期戳”对应的时间(标准日期),减去这个日期戳,得出起始时间。获取起始时间:2018-05-02 对应的日期戳为:43222,接下来通过pandas 的Timedelta()和 to_datetime() 获取起始时间。可以看到起始日期为“1899-12-30”这样一来后续日期戳转标准日期,只需要在 “1899-12-30” 的基础上加 “日期戳”即可。批量转换首先定义一个函数用来进行转换:#定义转化日期戳的函数,stamp为日期戳def date(stamp):delta = pd.Timedelta(str(stamp)+'D')real_time = pd.to_datetime('1899-12-30') + deltareturn real_time然后针对DataFrame需要转换的列进行转换即可:

Python获取当前时间前、后一个月的函数

这需求折腾了我半天..

import time

import datetime as datetime

def late_time(time2):

# 先获得时间数组格式的日期

#time2是外部传入的任意日期

now_time = datetime.datetime.strptime(time2, '%Y-%m-%d')

#如需求是当前时间则去掉函数参数改写      为datetime.datetime.now()

threeDayAgo = (now_time - datetime.timedelta(days =30))

# 转换为时间戳

timeStamp =int(time.mktime(threeDayAgo.timetuple()))

# 转换为其他字符串格式

otherStyleTime = threeDayAgo.strftime("%Y-%m-%d")

return otherStyleTime

a = late_time("2019-3-30")

print(a)# 打印2018-02-28

python时间序列(2)

时期(period)表示的是时间区间,比如数日、数月、数季、数年等。Period类所 表示的就是这种数据类型,其构造函数需要用到一个字符串或整数,以及表11-4中 的频率:

这里,这个Period对象表示的是从2007年1月1日到2007年12月31日之间的整段时间。

只需对Period对象加上或减去一个整数即可达到根据其频率进行位移的效果:

如果两个Period对象拥有相同的频率,则它们的差就是它们之间的单位数量:

period_range函数可用于创建规则的时期范围:

PeriodIndex类保存了一组Period,它可以在任何pandas数据结构中被用作轴索引:

如果你有一个字符串数组,你也可以使用PeriodIndex类:

Period和PeriodIndex对象都可以通过其asfreq方法被转换成别的频率。假设我们有 一个年度时期,希望将其转换为当年年初或年末的一个月度时期。该任务非常简 单:

你可以将Period('2007','A-DEC')看做一个被划分为多个月度时期的时间段中的游 标。图11-1对此进行了说明。

对于一个不以12月结束的财政年度,月度子时期的归属情况就不一样了:

在将高频率转换为低频率时,超时期(superperiod)是由子时期(subperiod)所 属的位置决定的。例如,在A-JUN频率中,月份“2007年8月”实际上是属于周期“2008年”的:

完整的PeriodIndex或TimeSeries的频率转换方式也是如此:

这里,根据年度时期的第一个月,每年的时期被取代为每月的时期。

如果我们想要 每年的最后一个工作日,我们可以使用“B”频率,并指明想要该时期的末尾:

未完待续。。。

python中的time模块

time模块是python专门用来处理时间的内建库。

下面我们来记录一些基本使用方法。

ps: 用到了一些概念,比如unix时间戳,感兴趣的同学自行百度。

下文参考他人博客内容, 传送门

time.time()函数获取的是Unix时间戳。

返回的是一个float类型的数值。

在python中的time模块中定义了一个叫struct_time的元组,是用来构建时间对象的。

struct_time元组共9个元素组成,如下图:

这个函数可以接受一个unix时间戳,然后转换为struct_time。

如果不传入second参数,则会返回当前时间的时间戳的struct_time对象

再试试传入当前时间的时间戳,是否能得到上面的struct_time呢?

和我们预期的结果一致。

和localtime函数类似,默认情况gmtime函数获取当前时间的utc时间。

返回当前时间的utc时间的struct_time对象。

也可以传入任意的unix时间戳,来得到utc时间。

将一个时间戳struct_time对象转换为时间戳。

传入一个struct_time对象,返回"Sun Jun 20 23:21:05 1993"这种格式的字符串。不传参数,返回当前时间的这种格式的字符串。

传入格式和struct_time,返回按照format格式格式化后的时间字符串。

格式占位符可以参考下图:

将字符串时间转为struct_time,time.strftime()的逆向操作。


分享标题:python现在时间函数的简单介绍
标题URL:http://cdkjz.cn/article/hspegh.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220