python时间处理详解

1.获取当前时间的两种方法:

import datetime,time

now = time.strftime(“%y-%m-%d %h:%m:%s”)

print now

now = datetime.datetime.now()

print now

2.获取上个月最后一天的日期(本月的第一天减去1天)

last = datetime.date(datetime.date.today().year,datetime.date.today().month,1)-datetime.timedelta(1)

print last

3.获取时间差(时间差单位为秒,常用于计算程序运行的时间)

starttime = datetime.datetime.now()

#long running

endtime = datetime.datetime.now()

print (endtime – starttime).seconds

4.计算当前时间向后10个小时的时间

d1 = datetime.datetime.now()

d3 = d1 + datetime.timedelta(hours=10)

d3.ctime()

其本上常用的类有:datetime和timedelta两个。它们之间可以相互加减。每个类都有一些方法和属性可以查看具体的值,如 datetime可以查看:天数(day),小时数(hour),星期几(weekday())等;timedelta可以查看:天数(days),秒数 (seconds)等。

5.python中时间日期格式化符号:

%y 两位数的年份表示(00-99)

%y 四位数的年份表示(000-9999)

%m 月份(01-12)

%d 月内中的一天(0-31)

%h 24小时制小时数(0-23)

%i 12小时制小时数(01-12)

%m 分钟数(00=59)

%s 秒(00-59)

%a 本地简化星期名称

%a 本地完整星期名称

%b 本地简化的月份名称

%b 本地完整的月份名称

%c 本地相应的日期表示和时间表示

%j 年内的一天(001-366)

%p 本地a.m.或p.m.的等价符

%u 一年中的星期数(00-53)星期天为星期的开始

%w 星期(0-6),星期天为星期的开始

%w 一年中的星期数(00-53)星期一为星期的开始

%x 本地相应的日期表示

%x 本地相应的时间表示

%z 当前时区的名称

%% %号本身

附上示例代码:

代码code highlighting produced by actipro codehighlighter (freeware)http://www.codehighlighter.com/–>#-*-coding:utf-8-*-

import datetime, calendar

def getyesterday():

today=datetime.date.today()

oneday=datetime.timedelta(days=1)

yesterday=today-oneday

return yesterday

def gettoday():

return datetime.date.today()

#获取给定参数的前几天的日期,返回一个list

def getdaysbynum(num):

today=datetime.date.today()

oneday=datetime.timedelta(days=1)

li=[]

for i in range(0,num):

#今天减一天,一天一天减

today=today-oneday

#把日期转换成字符串

#result=datetostr(today)

li.append(datetostr(today))

return li

#将字符串转换成datetime类型

def strtodatetime(datestr,format):

return datetime.datetime.strptime(datestr,format)

#时间转换成字符串,格式为2008-08-02

def datetostr(date):

return str(date)[0:10]

#两个日期相隔多少天,例:2008-10-03和2008-10-01是相隔两天

def datediff(begindate,enddate):

format=”%y-%m-%d”;

bd=strtodatetime(begindate,format)

ed=strtodatetime(enddate,format)

oneday=datetime.timedelta(days=1)

count=0

while bd!=ed:

ed=ed-oneday

count+=1

return count

#获取两个时间段的所有时间,返回list

def getdays(begindate,enddate):

format=”%y-%m-%d”;

bd=strtodatetime(begindate,format)

ed=strtodatetime(enddate,format)

oneday=datetime.timedelta(days=1)

num=datediff(begindate,enddate)+1

li=[]

for i in range(0,num):

li.append(datetostr(ed))

ed=ed-oneday

return li

#获取当前年份 是一个字符串

def getyear():

return str(datetime.date.today())[0:4]

#获取当前月份 是一个字符串

def getmonth():

return str(datetime.date.today())[5:7]

#获取当前天 是一个字符串

def getday():

return str(datetime.date.today())[8:10]

def getnow():

return datetime.datetime.now()

print gettoday()

print getyesterday()

print getdaysbynum(3)

print getdays(‘2008-10-01′,’2008-10-05’)

print ‘2008-10-04 00:00:00′[0:10]

print str(getyear())+getmonth()+getday()

print getnow()

Posted in 未分类

发表评论