重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
datetime在python中比较常用,主要用来处理时间日期,使用前先倒入datetime模块。下面总结下本人想到的几个常用功能。
创新互联公司-专业网站定制、快速模板网站建设、高性价比喀什网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式喀什网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖喀什地区。费用合理售后完善,10多年实体公司更值得信赖。
1、当前时间:
print datetime.datetime.now()2015-07-17 16:39:15.712000 print type(datetime.datetime.now())
type 'datetime.datetime'
返回的datetime时间格式。
2、当前日期
print datetime.datetime.now().date()2015-07-17 print type(datetime.datetime.now().date())
type 'datetime.date'
3、当前时间tuple
datetime.datetime.now().timetuple()time.struct_time(tm_year=2015, tm_mon=7, tm_mday=17, tm_hour=16, tm_min=51, tm_sec=26, tm_wday=4, tm_yday=198, tm_isdst=-1)
datetime.datetime.now().timetuple().tm_mday17
4、时间移动(几天、几小时前后...)
使用datetime.timedelta这个方法来前后移动时间,可以用的参数有weeks,days,hours,minutes,seconds,microseconds。
print datetime.datetime.now() + datetime.timedelta(days=1)2015-07-18 16:49:48.574000 print datetime.datetime.now() + datetime.timedelta(hours=1)2015-07-17 17:49:57.122000 print datetime.datetime.now() + datetime.timedelta(minutes=-30)2015-07-17 16:20:08.619000
上个月最后一天
print datetime.date(day=1,month=datetime.date.today().month,year=datetime.date.today().year) - datetime.timedelta(days=1)2015-06-30
5、获取两个时间的时间差
(datetime.datetime.now() - datetime.datetime.utcnow()).total_seconds()
28800.0
6、时间转化
datetime转str格式:
datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")'2015-07-17 16:58:46'
str格式转datetime格式:
datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S")
datetime.datetime(2015, 7, 17, 16, 58, 46)
print datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S")2015-07-17 16:58:46 print type(datetime.datetime.strptime("2015-07-17 16:58:46","%Y-%m-%d %H:%M:%S"))
type 'datetime.datetime'
datetime转timestamp:
import time now=datetime.datetime.now() time.mktime(now.timetuple())1437123812.0
timestamp转datetime:
datetime.datetime.fromtimestamp(1437123812.0)datetime.datetime(2015, 7, 17, 17, 3, 32)
print datetime.datetime.fromtimestamp(1437123812.0)
2015-07-17 17:03:32
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.基础篇
from time import sleep就是从time模块中引入sleep函数,使用sleep函数可以让程序休眠(推迟调用线程的运行)。
具体方法:
1,sleep(时间)。
2,#如果之前引入了time模块,使用time.sleep(时间)语句即可,不需要import这个语句。
3,#具体用法见下其中“时间”以秒为单位,可以是小数,0.1秒则代表休眠100毫秒。
扩展资料:
使用Python编程时的注意事项:
1,初始变化量:
在Python里,一个表达式中的名字在它被赋值之前是没法使用的。这是有意而为的:这样能避免一些输入失误,同时也能避免默认究竟应该是什么类型的问题(0,None,””,[],?)。记住把计数器初始化为0,列表初始化为[],以此类推。
2,从第一列开始:
确保把顶层的,未嵌套的代码放在最左边第一列开始。这包括在模块文件中未嵌套的代码,以及在交互提示符中未嵌套的代码。Python使用缩进的办法来区分嵌套的代码段,因此在代码左边的空格意味着嵌套的代码块。除了缩进以外,空格通常是被忽略掉的。
3,缩进一致:
在同一个代码块中避免讲tab和空格混用来缩进,除非知道运行自己的代码的系统是怎么处理tab的。否则的话,在自己的编辑器里看起来是tab的缩进也许Python看起来就会被视作是一些空格。保险起见,在每个代码块中全都是用tab或者全都是用空格来缩进;用多少由自己决定。
4,在函数调用时使用括号:
无论一个函数是否需要参数,必须要加一对括号来调用它。即,使用function(),而不是function。Python的函数简单来说是具有特殊功能的对象,而调用是用括号来触发的。像所有的对象一样,它们也可以被赋值给变量,并且间接的使用它们:x=function:x()。
1、默认情况下,pandas中的时间序列是单纯(naive)的时区,其索引的tz字段为None。
2、可以用时区集生成日期范围。
3、从单纯到本地化的转换是通过tz_localize方法处理的。
4、一旦时间序列被本地化到某个特定时区,就可以用tz_convert将其转换到别的时区了。
5、对于上面这种时间序列(它跨越了美国东部时区的夏令时转变期),我们可以将其本地化到EST,再转换为UTC或柏林时间。
Python-for-data-移动窗口函数
本文中介绍的是 ,主要的算子是:
统计和通过其他移动窗口或者指数衰减而运行的函数,称之为 移动窗口函数
style scoped="".dataframe tbody tr th:only-of-type { vertical-align: middle; } precode.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } /code/pre/style
2292 rows × 3 columns
rolling算子,行为和resample和groupby类似
rolling可以在S或者DF上通过一个window进行调用
style scoped="".dataframe tbody tr th:only-of-type { vertical-align: middle; } precode.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } /code/pre/style
2292 rows × 3 columns
指定一个常数衰减因子为观测值提供更多的权重。常用指定衰减因子的方法:使用span(跨度)
一些统计算子,例如相关度和协方差等需要同时操作两个时间序列。
例如,金融分析中的股票和基准指数的关联性问题:计算时间序列的百分比变化pct_change()
style scoped="".dataframe tbody tr th:only-of-type { vertical-align: middle; } precode.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } /code/pre/style
在rolling及其相关方法上使用apply方法提供了一种在移动窗口中应用自己设计的数组函数的方法。
唯一要求:该函数从每个数组中产生一个单值(缩聚),例如使用rolling()...quantile(q)计算样本的中位数
python中的时间模块主要有time, datetime。
I, time模块
time模块中包含了四种时间格式:
float格式,即给定时间相对于epoch增加的秒数
tuple格式,一个九元组 (tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)
string格式,'Mon Feb 6 15:00:06 2012'
format格式,以指定的格式生成的时间
针对这几种时间格式,time模块提供了函数在格式之间相互转换。
asctime(tuple) -string
ctime(float) -string
gmtime(float) -tuple
localtime(float) -tuple
mktime(tuple) -float
strftime(format, tuple) -format string
strptime(formatstring, format) -tuple
time() - float
上述函数中,除了time()函数直接返回当前时间相对于epoch的秒数外,其他函数都要求有时间的输入,如果没有输入,则默认使用当前时间。
另外,strftime和strptime中的format使用下面的格式:
%a 英文星期简写
%A 英文星期的完全
%b 英文月份的简写
%B 英文月份的完全
%c 显示本地日期时间
%d 日期,取1-31
%H 小时, 0-23
%I 小时, 0-12
%m 月, 01 -12
%M 分钟,1-59
%j 年中当天的天数
%w 显示今天是星期几
%W 第几周
%x 当天日期
%X 本地的当天时间
%y 年份 00-99间
%Y 年份的完整拼写
%S 秒(00-59)
除了上述的时间转换函数之外,模块还提供了下面的函数:
clock() 返回进程的创建时间,以秒计数的float
sleep(float) sleep一段时间,以秒计数
tzset() 更改时区
II, datetime
datetime模块定义了下面这几个类:
datetime.date:表示日期的类。常用的属性有year, month, day;datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;datetime.datetime:表示日期时间。datetime.timedelta:表示时间间隔,即两个时间点之间的长度。datetime.tzinfo:与时区有关的相关信息。(这里不详细充分讨论该类,感兴趣的童鞋可以参考python手册)
注 :上面这些类型的对象都是不可变(immutable)的。
下面详细介绍这些类的使用方式。
date类
date类表示一个日期。日期由年、月、日组成(地球人都知道~~)。date类的构造函数如下:
class datetime.date(year, month, day):参数的意义就不多作解释了,只是有几点要注意一下:
year的范围是[MINYEAR, MAXYEAR],即[1, 9999];month的范围是[1, 12]。(月份是从1开始的,不是从0开始的~_~);day的最大值根据给定的year, month参数来决定。例如闰年2月份有29天;
date类定义了一些常用的类方法与类属性,方便我们操作:
date.max、date.min:date对象所能表示的最大、最小日期;date.resolution:date对象表示日期的最小单位。这里是天。date.today():返回一个表示当前本地日期的date对象;date.fromtimestamp(timestamp):根据给定的时间戮,返回一个date对象;datetime.fromordinal(ordinal):将Gregorian日历时间转换为date对象;(Gregorian Calendar :一种日历表示方法,类似于我国的农历,西方国家使用比较多,此处不详细展开讨论。)