Python 日期和时间

time.time()获取当前时间戳

例如:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import time;  # 引入time模块

ticks = time.time()
print "当前时间戳为:", ticks

结果:

当前时间戳为: 1491750320.74

时间元组

比如获取当前时间:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import time

localtime = time.localtime(time.time())
print "本地时间为 :", localtime

获取格式化的时间

localtime = time.asctime( time.localtime(time.time()) )
print "本地时间为 :", localtime

结果:

本地时间为 : Sun Apr 09 23:12:15 2017

格式化日期

格式有点类似java的日期格式化

import time

# 格式化成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"))

结果:

2017-04-09 23:13:50
Sun Apr 09 23:13:50 2017
1459175064.0

日期格式化符号

获取某月日历

 直接以日历的形式显示某月的信息

 2017年4月份的日历:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import calendar

cal = calendar.month(2017, 4)
print "以下输出2017年4月份的日历:"
print cal;

显示结果:

以下输出2017年4月份的日历:
April 2017
Mo Tu We Th Fr Sa Su
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Time 模块

示例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time

print 'time.altzone = ', time.altzone  # 返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。
print 'time.asctime() = ', time.asctime()  # 接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
print 'time.clock() = ', time.clock()  # 用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。
print 'time.ctime() = ', time.ctime()  # 作用相当于asctime(localtime(secs)),未给参数相当于asctime()
print 'time.gmtime() = ', time.gmtime()  # 接收时间辍(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0
print 'time.localtime() = ', time.localtime()  # 接收时间辍(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)
t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)
secs = time.mktime(t)
print 'time.mktime(time.localtime(secs)) = ', time.mktime(time.localtime(secs))  # 接受时间元组并返回时间辍(1970纪元后经过的浮点秒数)。
time.sleep(3)  # 推迟调用线程的运行,secs指秒数。
print 'time.strftime("%y %m %d:%H %M %S", time.gmtime(secs)) = ', time.strftime("%y %m %d:%H %M %S", time.gmtime(secs))

struct_time = time.strptime("30 Nov 00", "%d %b %y")
print "returned tuple: %s " % struct_time
print '当前时间的时间戳 = ', time.time()  # 返回当前时间的时间戳(1970纪元后经过的浮点秒数)

结果:

time.altzone =  -32400
time.asctime() =  Mon Apr 10 09:13:39 2017
time.clock() =  1.80279090059e-06
time.ctime() =  Mon Apr 10 09:13:39 2017
time.gmtime() =  time.struct_time(tm_year=2017, tm_mon=4, tm_mday=10, tm_hour=1, tm_min=13, tm_sec=39, tm_wday=0, tm_yday=100, tm_isdst=0)
time.localtime() =  time.struct_time(tm_year=2017, tm_mon=4, tm_mday=10, tm_hour=9, tm_min=13, tm_sec=39, tm_wday=0, tm_yday=100, tm_isdst=0)
time.mktime(time.localtime(secs)) =  1234861418.0
time.strftime("%y %m %d:%H %M %S", time.gmtime(secs)) =  09 02 17:09 03 38
returned tuple: time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1) 
当前时间的时间戳 =  1491786822.34

日历(Calendar)模块

 示例:

# !/usr/bin/python
# -*- coding: UTF-8 -*-
import calendar

calendar.setfirstweekday(6)  # 设置每周的起始日期码。0(星期一)到6(星期日),在显示日历之前设置比较好
print '---------calendar方法----------'
print  calendar.calendar(2017, 2, 1,
                         6)  # calendar.calendar(year,w=2,l=1,c=6)返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
print calendar.firstweekday
print 'calendar.isleap(2017) = ', calendar.isleap(2017)  # 判断2017年是否是闰年 是闰年返回True,否则为false。
print '2000年到2017年之间所有的闰年总数 = ', calendar.leapdays(2000, 2017)
print '---------2017年4月份的日历----------'
print calendar.month(2017, 4, 2, 1)
print '---------2017年5月份的列表数据----------'
print calendar.monthcalendar(2017, 5)  # 返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。
print calendar.monthrange(2017, 4)  # 返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。
print '---------prcal方法----------'
print calendar.prcal(2017, 2, 1, 6)  # 相当于 print calendar.calendar(year,w,l,c).
print '---------prmonth方法----------'
print calendar.prmonth(2017, 5, 2, 1)  # 相当于 print calendar.calendar(year,w,l,c)。
# print     calendar.timegm(tupletime) #和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间辍(1970纪元后经过的浮点秒数)。没搞懂,暂时搁置
print calendar.weekday(2017, 4, 11)  # 返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。
原文地址:https://www.cnblogs.com/androidsuperman/p/6687056.html