from datetime import datetime
import math
def last_xmonth(x):
now = datetime.now()
if x==0:
? ? return now
else:
? ? if xnow.month:
? ? ? ? date1 = datetime.strftime(datetime(now.year-b+1,now.month-a,now.day),'%Y-%m-%d')
? ? else :
? ? return date1
time()函数可以获取当前时间戳;ctime()函数可以以一种易读的方式获取系统当前时间;gmtime()函数可获取当前0时区的struct_time格式的时间;localtime()函数可获取当前地区的struct_time格式的时间.
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能.
Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间.
时间间隔是以秒为单位的浮点小数.
Python 的 time 模块下有很多函数可以转换常见日期格式.如函数time.time()用于获取当前时间戳, 如下实例:
#!/usr/bin/python
import time; # 引入time模块
ticks = time.time()
print "当前时间戳为:", ticks
以上实例输出结果:
什么是时间元组?
序号
字段
值
上述也就是struct_time元组.这种结构具有如下属性:
属性
获取当前时间
从返回浮点数的时间辍方式向时间元组转换,只要将浮点数传递给如localtime之类的函数.
import time
localtime = time.localtime(time.time())
print "本地时间为 :", localtime
获取格式化的时间
你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():
localtime = time.asctime( time.localtime(time.time()) )
格式化日期
我们可以使用 time 模块的 strftime 方法来格式化日期,:
time.strftime(format[, t])
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())
# 将格式字符串转换为时间戳
print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))
python中时间日期格式化符号:
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%p 本地A.M.或P.M.的等价符
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
获取某月日历
Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:
import calendar
print cal;
Mo Tu We Th Fr Sa Su
Time 模块
Time 模块包含了以下内置函数,既有时间处理相的,也有转换时间格式的:
函数及描述
①. time.altzone
返回格林威治西部的夏令时地区的偏移秒数.如果该地区在格林威治东部会返回负值(如西欧,包括英国).对夏令时启用地区才能使用.
用以浮点数计算的秒数返回当前的CPU时间.用来衡量不同程序的耗时,比time.time()更有用.
作用相当于asctime(localtime(secs)),未给参数相当于asctime()
推迟调用线程的运行,secs指秒数.
接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定.
①.0 time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
根据fmt的格式把一个时间字符串解析为时间元组.
①.1 time.time( )
根据环境变量TZ重新初始化时间相关设置.
属性及描述
①. time.timezone
属性time.timezone是当地时区(未启动夏令时)距离格林威治的偏移秒数(0,美洲;=0大部分欧洲,亚洲,非洲).
属性time.tzname包含一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的.
日历(Calendar)模块
此模块的函数都是日历相关的,例如打印某月的字符月历.
星期一是默认的每周第一天,星期天是默认的最后一天.更改设置需调用calendar.setfirstweekday()函数.模块包含了以下内置函数:
返回当前每周起始日期的设置.默认情况下,首次载入caendar模块时返回0,即星期一.
是闰年返回True,否则为false.
返回一个整数的单层嵌套列表.每个子列表装载代表一个星期的整数.Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始.
相当于 print calendar.calendar(year,w,l,c).
相当于 print calendar.calendar(year,w,l,c).
①.0 calendar.setfirstweekday(weekday)
①.1 calendar.timegm(tupletime)
python格式化日期的方法:可以利用time.asctime(time.local(time.time()))函数来格式化日期.如果我们要获取当前日期,可以利用时间函数time()来获取.