`

python时间函数和常用格式化

阅读更多

使用之前import:

import time,datetime

下面的函数在python2.7里可以正常运行,但python2.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_time
2013-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_time
2013-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_float
1369101035.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格式化函数

    格式化函数解析,明确确定格式化函数所需要的参数,位置

    python中日期和时间格式化输出的方法小结

    本文实例总结了python中日期和时间格式化输出的方法。分享给大家供大家参考。具体分析如下: python格式化日期时间的函数为datetime.datetime.strftime();由字符串转为日期型的函数为:datetime.datetime.strptime...

    Python简单格式化时间的方法【strftime函数】

    本文实例讲述了Python简单格式化时间的方法,分享给大家供大家参考,具体如下: walker经常用到当前时间和相对时间,用来统计程序执行的效率,简单记一下,便于copy。 &gt;&gt;&gt; import time &gt;&gt;&gt; startTime = time.time()...

    Python datetime时间格式化去掉前导0

    您可能感兴趣的文章:python日期时间转为字符串或者格式化输出的实例python中日期和时间格式化输出的方法小结Python 时间操作例子和时间格式化参数小结Python简单格式化时间的方法【strftime函数】python 时间戳与...

    Python中使用pprint函数进行格式化输出的教程

    格式化工具会生成数据结构的一些表示,不仅可以由解释器正确地解析,而且便于人类阅读。输出尽可能放在一行上,分解为多行时则需要缩进。 以下实例用用到的data包含一下数据 data = [(1,{'a':'A','b':'B','c':'C','...

    测量程序编制 - python 56格式化输出:时间日期—time模块.pptx

    Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间 时间间隔是以秒为单位的浮点小数。 每个时间戳都以自从 1970 年 1 月 1 日午夜(历元)经过了多长时间来表示。;time 模块下有很多函数可以转换...

    测量程序编制 - python 57格式化输出:时间日期—time模块(函数).pptx

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

    Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)

    Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。 关于时间戳的几个概念 时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。 时间元组(struct_time),包含9个元素。 time....

    python面试题目-python-python经典面试题目-Python语言的基本概念-常用的功能和特性-编程范式-面试题目

    Python中的列表(List)和元组(Tuple)有什么区别? 什么是Python中的装饰器(Decorator)?如何使用装饰器? Python中的生成器...Python中如何进行字符串格式化? 什么是Python中的面向对象编程(OOP)?列

    Python 时间操作例子和时间格式化参数小结

    /usr/bin/python  import time #取一天前的当前具体时间 time.strftime(‘%Y-%m-%d %T’,time.localtime(time.time()-24*60*60))  #取15天前的当前具体时间 time.strftime(‘%Y-%m-%d %T’,time.localtime(time...

    python format 格式化输出方法

    在python2.7及以上的版本,str.format()的方式为格式化提供了非常大的便利。与之前的%型格式化字符串相比,他显得更为方便与优越。下面我们就来看看format的具体用法。 1、常见的用法 二话不说,首先上代码,看看...

    python中常用的输入输出语句.docx

    Python中常用的输入输出语句是input()和print(),分别用于接收用户输入和输出程序结果。 1. input()函数可以接收用户输入的数据,并将其存储在一个变量中,如:name = input("请输入您的姓名:") 2. 如果需要输入多...

    浅析python3字符串格式化format()函数的简单用法

    主要介绍了python3字符串格式化format()函数的简单用法,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

    Python常用数据结构和公共方法技巧总结

    Python常用数据结构和公共方法技巧总结 目录 • 1. 列表 • 1.1 列表的定义 ...• 4.4 字符串的格式化输出 • 5. 公共方法 • 5.1 Python 内置函数 • 5.2 切片 • 5.3 运算符 5.4 完整的 for 循环语法

    python 常用的基础函数

    4. format(12.3654,’6.2f’/’0.3%’)函数:实现格式化输出 5. type()函数:查询对象的类型 6. int()函数、float()函数、str()函数等:类型的转化函数 7. id()函数:获取对象的内存地址 8. help()函数:Python的...

    Python格式化日期时间操作示例

    本文实例讲述了Python格式化日期时间的方法。分享给大家供大家参考,具体如下: 常用的时间函数如下 获取当前日期:time.time() 获取元组形式的时间戳:time.local(time.time()) 格式化日期的函数(基于元组的形式...

    Python中常用操作字符串的函数与方法总结

    主要介绍了Python中常用操作字符串的函数与方法总结,包括字符串的格式化输出与拼接等基础知识,需要的朋友可以参考下

    详解Python中的format格式化函数的使用方法

    主要介绍了详解Python中的format格式化函数的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Global site tag (gtag.js) - Google Analytics