`

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的标准库中,`datetime`模块提供了很多处理日期和时间相关的功能。本小结将主要介绍`...

    python格式化函数

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

    python时间函数

    它提供了一系列用于创建、格式化和操作日期时间对象的方法。以下是一些关键的函数和类: - **datetime.datetime.now()**:获取当前的日期和时间。 - **datetime.datetime.today()**:类似于 `now()`,但返回一个...

    python实验报告-函数定义和调用.doc

    在Python中,我们使用`def`关键字来定义一个函数,后跟函数名和圆括号,圆括号内可以包含函数参数。例如,`drawDigit(d)`函数接受一个参数`d`,用于绘制七段数码管。函数体内的代码则执行相应的操作。 在实验的第一...

    Python常用的基础函数

    2. format()函数:实现格式化输出 format()函数可以将数据按照指定的格式输出,例如:format(12.3654, '6.2f'),它将数字12.3654按照小数点后两位的格式输出。 输入函数 3. raw_input()函数:从用户键盘捕获字符 ...

    Python中的函数(课件)

    函数在软件开发中扮演着至关重要的角色,因为它们有助于提高代码的模块化和可读性。 **函数的定义与调用** 在Python中,定义一个函数使用`def`关键字,后面跟着函数名,函数名应该清晰地表示函数的目的。函数名...

    python的scanf函数.docx

    Python 不像C语言那样内置了`scanf`函数,但在Python中可以使用第三方库来实现类似功能。`scanf`函数在C语言中是一个用于从标准输入读取格式化数据的函数,能够将用户输入的数据按照预设的格式解析并存储到对应的...

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

    Python中的time模块是处理时间的重要工具,提供了丰富的函数来处理时间相关的操作,包括时间的格式化、转换和延迟等。以下是对time模块中几个主要函数的详细解释: 1. `time.asctime([tupletime])`:这个函数用于将...

    格式化读写函数.zip

    在编程领域,格式化读写函数是至关重要的组成部分,它们允许程序员以特定的格式处理数据的输入和输出。本文将深入探讨格式化读写函数的概念、常见用途、以及如何在不同编程语言中实现它们。 首先,我们要理解什么是...

    python内置函数.pdf

    在"python内置函数.pdf"这份文档中,主要介绍了四个关键部分:常用函数、内置类型转换函数、序列处理函数以及String模块。下面将详细阐述这些知识点。 1. **常用函数** - `abs(x)`:这个函数返回数字(包括复数)...

    python面试常用的常用38题

    Python中的xs和.format方法可以用来格式化字符串。xs方法可以用来格式化数字,而.format方法可以用来格式化字符串。 11. 列表和元组的区别 Python中的列表和元组都可以用来存储多个元素,但是列表是可变的,而元组...

    格式化函数源码,支持各种格式化

    格式化函数允许程序员以指定的样式和布局来展示数据,这包括数字、字符串、日期和时间等。常见的格式化操作有:控制精度(如浮点数的小数位数)、填充字符(如用0填充)和对齐方式(左对齐、右对齐或居中)等。这些...

    Python-人性化的格式日期字符串的R包

    在Python中,通常使用`datetime`模块的`strftime`方法来格式化日期。例如: ```python from datetime import datetime date = datetime.now() formatted_date = date.strftime("%Y-%m-%d %H:%M:%S") print...

    Python中常用的Python time模块常用函数

    Python中的time模块是处理时间操作的核心模块,提供了丰富的函数来帮助开发者进行时间相关的计算和格式化。以下将详细解释在Python中常用的time模块函数: 1. **time.time()** 函数: - 定义:返回自1970年1月1日...

    python常用函数.doc

    ### Python 常用函数详解 #### 一、`map()` 函数 ...以上介绍了 Python 中 `map()`、`reduce()` 和 `filter()` 几个常用的内置函数及其基本用法。掌握这些函数可以帮助开发者更高效地处理数据,实现更简洁的编程逻辑。

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

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

    python中的real函数-RealPython基础教程:Python字符串用法详解.pdf

    在Python中,字符串是不可变的数据类型,它们是由一个或多个字符组成的序列。字符串处理是编程中的基础,因为几乎每个应用程序都需要对文本进行操作。Python提供了丰富的功能来处理字符串,包括运算符、函数和类方法...

    python excel操作函数

    - `pandas`是Python中强大的数据分析工具,它内置了读取和写入多种文件格式的能力,包括Excel。 - **读取Excel**:使用`pandas.read_excel()`函数,可以将Excel文件加载为DataFrame对象。例如: ```python ...

Global site tag (gtag.js) - Google Analytics