python时间函数和常用格式化

栏目: 编程语言 · Python · 发布时间: 8年前

内容简介:python时间函数和常用格式化

使用之前import:

import time,datetime

下面的函数在python2.7里可以正常运行,但 python 2.4可能不支持某些方法。比如python2.4.3中报错:

AttributeError: type object 'datetime.datetime' has no attribute 'strptime'

 

格式化当前时间则为:

首选:time.strftime('%Y-%m-%d %H:%M:%S')

其次:datetime.datetime.strftime(datetime.d atetime.now(), '%Y-%m-%d %H:%M:%S')

最后:str(datetime.datetime.now())[:19]

 

获取日期差:

oneday = datetime.timedelta(days=1)today = datetime.date.today()yesterday  = datetime.date.today() - oneday

tomorrow = datetime.date.today() + oneday

获取今天零点的时间:

today_zero_time = datetime.datetime.strftime(today, '%Y-%m-%d %H:%M:%S')

print today_zero_time

2013-05-21 00:00:00

 

获取时间差:

oneday = datetime.timedelta(days=1)

today_time = datetime.datetime.now()

yesterday_time = datetime.datetime.now() - oneday

tomorrow_time  = datetime.datetime.now() + oneday

注意时间是浮点数,带毫秒。如下:

print tomorrow_time2013-05-22 10:34:43.873844

那么要获取当前时间,需要格式化一下:

oneday = datetime.timedelta(days=1)

today_time = datetime.datetime.now()

yesterday_time = datetime.datetime.now() - oneday

tomorrow_time  = datetime.datetime.now() + oneday

tomorrow_time = datetime.datetime.strftime(today_time, '%Y-%m-%d %H:%M:%S')

运行结果如下所示:

print tomorrow_time2013-05-21 10:34:43

 

获取上个月最后一天:

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

 

字符串格式转秒数:

expire_time = "2013-05-21 09:50:35"

d = datetime.datetime.strptime(expire_time,"%Y-%m-%d %H:%M:%S")

time_sec_float = time.mktime(d.timetuple())

print time_sec_float1369101035.0

注意python里获取到的是float类型的秒数,而不是整形。如果要获得整数,可以用int(time_sec_float)

 

秒数转字符串:

time_sec = time.time()

time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time_sec))

 

python的时间转换函数搞得太抽象复杂,因此我包装了一个函数,传入字符串可以获取到时间的各种格式,传入秒数可以获取字符串格式时间(这个是很简单的),还传入两个字符串格式的时间,以计算他们的时间差。

#coding=gbk  
  
import time, datetime  
  
# 传入一个字符串格式的时间2013-05-21 14:31:23,可以得到各种格式的时间  
class TIMEFORMAT:  
    def __init__(self, time_string="1970-1-1 00:00:00"):  
        self.time_string = self._format_time_string(time_string)  
  
    def _format_time_string(self, time_string):  
        return time.strftime("%Y-%m-%d %H:%M:%S", self.get_struct(time_string))  
 
    @property  
    def time_struct(self):  
        return self.get_struct(self.time_string)  
    def get_struct(self, time_string):  
        return time.localtime(self.get_seconds(time_string))  
 
    @property  
    def seconds(self):  
        return self.get_seconds(self.time_string)  
    def get_seconds(self, time_string):  
        d = datetime.datetime.strptime(time_string, "%Y-%m-%d %H:%M:%S")  
        return time.mktime(d.timetuple())  
  
    def get_string(self, time_sec):  
        return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time_sec))  
  
    # 对于中国的时间,是1970-01-01 08:00:00  
    def check_diff_time(self, t1, t2):  
        sec1 = int(self.get_seconds(t1))  
        sec2 = int(self.get_seconds(t2))  
        if sec1 > sec2:  
            secdiff = sec1 - sec2  
        else:  
            secdiff = sec2 - sec1  
        d = self.get_struct(self.get_string(secdiff))  
        day = d.tm_mday  
        hour = d.tm_hour  
        if d.tm_hour < 8:  
            day -= 1  
            hour = 24 + (d.tm_hour - 8)  
        else:  
            hour = d.tm_hour - 8  
  
        return {  
            "year"  :d.tm_year - 1970,  
            "month" :d.tm_mon  - 1,  
            "day"   : day - 1,  
            "hour"  : hour,  
            "min"   : d.tm_min,  
            "sec"   : d.tm_sec,  
        }  
  
if __name__ == "__main__":  
    t1 = TIMEFORMAT("2015-04-01 12:23:23")  
    t2 = TIMEFORMAT("2014-03-10 22:23:23")  
    print t1.seconds  
    print t2.seconds  
    d = t1.check_diff_time(t1.time_string, t2.time_string)  
    print "%s 和 %s 时间差为:%s年%s月%s天%s小时%s分%s秒" %(t1.time_string, t2.time_string, d["year"], d["month"], d["day"], d["hour"], d["min"], d["sec"])  

以上所述就是小编给大家介绍的《python时间函数和常用格式化》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

新内容创业:我这样打造爆款IP

新内容创业:我这样打造爆款IP

南立新、曲琳 / 机械工业出版社 / 2016-5-10 / 39.00

这是个内容创业爆棚的时代,在采访几十家内容创业公司,与一线最优秀的创业者独家对话之后,作者写作了这本书,其中包括对这个行业的真诚感触,以及希望沉淀下来的体系化思考。 本书共分三个部分讲述了爆红大号的内容创业模式和方法。其中第一部分,讲述了新的生产方式,即内容形态发展的现状--正在被塑造;第二部分,讲述了新的盈利探索,即从贩卖产品到贩卖内容的转变,该部分以多个案例进行佐证,内容翔实;第三部分,......一起来看看 《新内容创业:我这样打造爆款IP》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具