python3 时间日期处理函数

time 模块处理时间

python 提供了 time 模块用于处理时间和格式化时间,和 Java 不同,python 的时间戳是以秒单位的浮点数(距离 1970-1-1 00:00:00)

获取当前时间戳
可以通过 time.time()获取当前时间戳
import time
ticks = time.time()
print(ticks)
# 输出:1516811586.4532115

获取当前时间元组
可以使用 time.localtime() 获取当前时间元组,元组用于装载当前的时间信息,这个时间元组包含以下属性:
  • tm_year: 年份(4位),如:2018;
  • tm_mon:  月份,范围 1 - 12;
  • tm_mday:月份中的日期,范围 1 -31;
  • tm_hour:  小时,范围 0 - 23
  • tm_min:   分钟,范围 0 - 59
  • tm_sec:   秒,范围 0 - 61(60和61为闰秒)
  • tm_wday:一周中的第几天,范围 0 - 6 (0 为周一)
  • tm_yday: 一年中的第几天,范围 1-366
  • tm_isdst: 是否是夏令时,取值:1(夏令时),0(非夏令时),-1(未知,默认)
import time
curtime = time.localtime()
print(curtime)
print("cur year:", curtime.tm_year)
print("cur month:", curtime.tm_mon)
print("cur date:", curtime.tm_mday)
print("cur hour:", curtime.tm_hour)
print("cur min:", curtime.tm_min)
print("cur sec:", curtime.tm_sec)
# 输出:
# time.struct_time(tm_year=2018, tm_mon=1, tm_mday=25, tm_hour=0, tm_min=42, tm_sec=40, tm_wday=3, tm_yday=25, tm_isdst=0)
# cur year: 2018
# cur month: 1
# cur date: 25
# cur hour: 0
# cur min: 42
# cur sec: 40

格式化时间
对于时间元组的格式化,可以使用 time.asctime()time.strptime() 函数获取时间元组的格式化输出,使用time.mktime() 从格式化时间字符串创建时间元组对象;
python 中的时间格式化符号如下:
%Y  四位数的年份表示(000-9999) %y 两位数的年份表示(00-99)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M
分钟数(00-59)
%S
 秒(00-59)
%p
本地化的 AM,PM
%w
一周中的第几天(0-6,0为周日)
%a
本地简化星期名称,如:Mon
%A
本地完整星期名称,如:Monday
%b
本地简化的月份名称,如:Jan
%B
本地完整的月份名称,如:January
%j
年内的一天(001-366)
%U
一年中的星期数(00-53),周日为起始
%c
本地相应的日期表示和时间表示;
等同于:%a %b %d %H:%M%S %Y

如:Thu Jan 25 01:22:04 2018
%Z
当前时区的名称
%x
本地相应的日期表示;
等同于:%d/%m/%y
如:01/25/18
%X
本地相应的时间表示;
等同于:%H:%M%S
如:01:32:46
以下为示例使用:
# 快速格式化时间输出
curtime_str = time.asctime(time.localtime())
print(curtime_str)
# 输出:Thu Jan 25 00:42:40 2018
# 时间对象转化为格式化字符串
curtime_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(curtime_str)
# 输出:2018-01-25 00:55:12
# 格式化字符串转化为时间对象
curtime = time.mktime(time.strptime("2017-12-12", "%Y-%m-%d"))
print(curtime)
# 输出:1513008000.0

计算某段程序的运行时间
import time, random
start_tricks = time.clock()  # 记录开始CPU时间戳
# 测试代码
mylist = list()
for i in range(0, 10000000):
    mylist.append(random.randrange(0, 1000, 10))
del mylist
end_tricks = time.clock()              # 记录结束CPU时间戳
run_time = end_tricks - start_tricks   # 计算运行时间
print("code running time:", run_time, "seconds")
# 输出: code running time: 12.014192567369587 seconds


time 模块常用方法列表
线程相关
time.sleep(secs)
线程挂起一段时间,secs指秒数;
时间操作相关
time.time( )
返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
time.clock()
用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用
time.altzone()
返回格林威治西部的夏令时地区的偏移秒数
time.gmtime([secs])
接收时间辍(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组
time.localtime([secs]
接收时间辍(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组
time.asctime([tupletime])
接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008" 的字符串。
time.ctime([secs])
相当于asctime(localtime(secs))
time.mktime(tupletime)
接受时间元组并返回时间辍(1970纪元后经过的浮点秒数)。
time.strftime(fmt[,tupletime])
接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。
time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
根据fmt的格式把一个时间字符串解析为时间元组。

猜你喜欢

转载自blog.csdn.net/mrlida/article/details/79971973
今日推荐