ChuannBlog

4.4 time

时间元组(struct_time)

使用九位整数组成一个元组表示本地时间。

year (including century, e.g. 1998)
month (1-12)
day (1-31)
hours (0-23)
minutes (0-59)
seconds (0-59)
weekday (0-6, Monday is 0)
Julian day (day in the year, 1-366)
DST (Daylight Savings Time) flag (-1, 0 or 1)

时间元组属性

0 tm_year 2008
1 tm_mon 1 到 12
2 tm_mday 1 到 31
3 tm_hour 0 到 23
4 tm_min 0 到 59
5 tm_sec 0 到 61 (60或61 是闰秒)
6 tm_wday 0到6 (0是周一)
7 tm_yday 1 到 366(儒略历)
8 tm_isdst -1, 0, 1, -1是决定是否为夏令时的旗帜

time.time()

返回自1970年1月1日午夜(历元)开始到当前时间的时间戳,经过运算可以得到当前的具体时间.

import time

print(time.time())

时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。

time.localtime([seconds])

接收一个秒为单位的时间戳,转成时间元组输出。
不传入参数则返回当前本地时间戳的时间元组。

import time

local_time = time.localtime(time.time())

print(local_time)

e.g.:

time.struct_time(tm_year=2017, tm_mon=8, tm_mday=4, tm_hour=16, tm_min=13, tm_sec=5, tm_wday=4, tm_yday=216, tm_isdst=0)

time.asctime(p_tuple=None)

接收一个时间元组,转换为时间的字符串。
不传入参数则返回当前本地时间的字符串。

import time

print(time.asctime(time.localtime()))

e.g.

Fri Aug 4 16:19:38 2017

time.strftime(format, p_tuple=None)

fromat指定时间输出格式和位置,格式和位置参考下文;
p_tuple指定时间元组进行转换,不指定则使用当前时间。

%Y Year with century as a decimal number.
%m Month as a decimal number [01,12].
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%M Minute as a decimal number [00,59].
%S Second as a decimal number [00,61].
%z Time zone offset from UTC.
%a Locale’s abbreviated weekday name.
%A Locale’s full weekday name.
%b Locale’s abbreviated month name.
%B Locale’s full month name.
%c Locale’s appropriate date and time representation.
%I Hour (12-hour clock) as a decimal number [01,12].
%p Locale’s equivalent of either AM or PM.

import time

print(time.strftime('%Y %m %d'))

e.g.:

2017 08 04

time.sleep(sceonds)

接收一个秒数的浮点数,延迟程序的运行,时长为给定的秒数。