宽容他人,放过自己。

Python日期和时间

Posted on By anchoriteFili

比较常用的

时间戳

# time.time()用于获取当前时间戳
print time.time(), '当前时间戳为'
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import time
import calendar

# Python的time模块下有很多函数可以转换常见日期格式
# time.time()用于获取当前时间戳
print time.time(), '当前时间戳为'

# 获取当前时间
# 从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数
print '本地时间为:', time.localtime(time.time())

# 获取格式化的时间
#简单的获取可读的时间模式的函数是asctime()
localtime = time.asctime(time.localtime(time.time()))
print '本地时间为:', localtime

# 格式化日期
# 我们使用time模块的strftime方法来格式化日期

# 格式化成2016-03-20 11:45:39形式
print time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())

# 格式化成sat Mar 28 22:24:24 2016形式
print time.strftime('%a %b %d %H:%M:%S %Y', time.localtime())

# 将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2016"
print time.mktime(time.strptime(a, '%a %b %d %H:%M:%S %Y'))

# 获取某月日历
# Calendar模块有很广泛的方法用来处理年历和月历
print '输出16年1月份的日历:\n', calendar.month(2016,1)

# Time模块
# time模块包含了以下内置函数,既有时间处理相的,也有转换时间格式的
# altzone()函数返回格林威治西部的夏令时地区的偏移秒数,如果该地区在格林威治懂不会返回负值
print '格林威治西部的夏令时区地区的偏移秒数: %d' % time.altzone

# asctime()函数接收时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
t = time.localtime()
print 'asctime函数:%s' % time.asctime(t)

'''
    clock()函数以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。
    这个需要注意,不同系统上含义不同。在UNIX系统上,它返回的是进程时间,它是用秒表示的浮点数(时间戳)。而
    在windows中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间
'''

def procedure():
    time.sleep(0.5)

t0 = time.clock()
procedure()
print time.clock() - t0

t0 = time.time()
procedure()
print time.time() - t0

# ctime()函数把一个时间戳(按秒计算的浮点数)转化为time.asctime的形式。如果参数为给或者为None的时候,将会默认time.time()为参数。它的作用相当于asctime(localtime(secs))
print '将时间戳转化为time.asctime的形式:%s' % time.ctime()

# gmtime([sec])函数将一个时间戳转换为UTC时区(0时区)的struct_time,可选的参数sec表示从1970-1-1以来的秒数。其默认值为time.time(),函数返回time.struct_time类型的对象。(struct_time是在time模块中定义的表示时间的对象)函数没有任何返回值

print 'gmtime测试', time.gmtime()

# 接收时间戳,并返回当地时间下的时间元组t
print 'localtime测试', time.localtime()

# mktime()函数执行与gmtime(),localtime()相反的操作,它接收struct_time对象作为参数,返回秒数来表示时间的浮点数。返回用秒数来表示时间的浮点数。如果输入的值不是一个合法时间,将触发OverflowError或ValueError

t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)
secs = time.mktime(t)
print 'time.mktime(t): %f' % secs
print 'asctime(localtime(secs)): %s' % time.asctime(time.localtime(secs))

# sleep()函数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间。

print 'start : %s' % time.ctime()
time.sleep(1)
print 'end : %s' % time.ctime()

# strftime(format, t)函数接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定。
t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)
t = time.mktime(t)
print time.strftime('%b %d %Y %H:%M:%S', time.gmtime(t))

# strptime(string, format)函数根据指定的格式把一个时间字符串解析为时间元组
struct_time = time.strptime('30 Nov 00', '%d %b %y')
print 'struct_time: %s' % struct_time

# time.time()函数,返回当前时间的时间戳
print time.time()

# tzset()根据环境变量TZ重新初始化时间相关设置

print '当地时区距离格林威治的偏移秒数', time.timezone
print '包含一对根据情况不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的', time.tzname #符号错误的话会出现invalid syntax错误