关于python时间函数详解的信息

Python中处理时间的几种方法小结

python中的时间模块主要有time, datetime。

创新互联是一家专注于网站制作、成都做网站与策划设计,利通网站建设哪家好?创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:利通等地区。利通做网站价格咨询:18980820575

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 :一种日历表示方法,类似于我国的农历,西方国家使用比较多,此处不详细展开讨论。)

python的time怎么使用

time模块

time这个模块提供各种与时间相关的函数。相关功能,可以参见datetime和calendat模块。

此模块并非所有平台提供所有功能,因平台而异。

以下是对一些术语和惯例的解释

初始时间因平台而异。对于Unix平台,初始时间是1970,01,01,00:00:00(UTC)。查看每个操作平台的初始时间可以使用time.gmtime(0)函数。

在所有POSIX平台上,从初始时间以来的秒数都不包括闰秒

该模块中的函数可能不处理初始时间以前和遥远未来的日期和时间,未来的分界点对于32位操作系统是2038年。

UTC是协调世界时(以前称为格林尼治标准时间,GMT)。缩写UTC不是一个错误,而是英语和法语之间的妥协。

DST是夏令时,在一年中的某些时候,时区通常会调整一个小时。DST规则是神奇的(由当地法律决定),每年都在变化。

各种实时函数的精度可能低于表示其值或参数的单位所建议的精度。

推荐学习《python教程》

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时间函数详解的信息
本文URL:http://scyanting.com/article/hsohip.html