`

Python时间模块

阅读更多
time模块
时间模块中最常用的一个函数就是获取当前时间的函数time.time。

检查平台使用的纪元。

time.asctime(tupletime)接收一段时间的元祖,并返回一个可读的24个字符的字符串。
[11]: import time
In [12]: print time.asctime(time.gmtime(0))
Thu Jan  1 00:00:00 1970
[21]: time.asctime()
Out[21]: 'Mon Sep 16 11:34:00 2013'
In [32]: time.asctime(time.localtime())
Out[32]: 'Mon Sep 16 14:54:22 2013'

time.ctime(secs) 
In [35]: time.ctime(time.time())
Out[35]: 'Mon Sep 16 14:56:57 2013'

time.gmtime(secs)
In [37]: time.gmtime(time.time())
Out[37]: time.struct_time(tm_year=2013, tm_mon=9, tm_mday=16, tm_hour=6, tm_min=59, tm_sec=27, tm_wday=0, tm_yday=259, tm_isdst=0)

time.localtime(secs)
In [38]: time.localtime(time.time())
Out[38]: time.struct_time(tm_year=2013, tm_mon=9, tm_mday=16, tm_hour=15, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=259, tm_isdst=0)

GMT时间和本地时间差8个小时
[17]: time.gmtime()
Out[17]: time.struct_time(tm_year=2013, tm_mon=9, tm_mday=16, tm_hour=3, tm_min=31, tm_sec=30, tm_wday=0, tm_yday=259, tm_isdst=0)

In [18]: time.localtime()
Out[18]: time.struct_time(tm_year=2013, tm_mon=9, tm_mday=16, tm_hour=11, tm_min=31, tm_sec=44, tm_wday=0, tm_yday=259, tm_isdst=0)

[20]: time.localtime().tm_hour-time.gmtime().tm_hour
Out[20]: 8

时间模块中两个非常重要有用的函数是strftime()和strptime()。
strftime()可以根据返回的时间元祖构建一个字符串。

In [27]: time.strftime('%Y-%m-%d',time.localtime())
Out[27]: '2013-09-16'


strptime()与前者相反,它将解析给定的字符串并产生一个时间元祖。

In [28]: time.strptime('2013-09-16','%Y-%m-%d')
Out[28]: time.struct_time(tm_year=2013, tm_mon=9, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=259, tm_isdst=-1)


time.mktime(tupletime)接受作为本地时间的时间元组,并返回一个浮点值。
In [30]: time.mktime(time.localtime())
Out[30]: 1379314376.0


datetime模块
>>> dir(datetime)
['MAXYEAR', 'MINYEAR', '__doc__', '__file__', '__name__', '__package__', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'tzinfo']

>>> import datetime
>>> today = datetime.date.today()
>>> yesterday = today - datetime.timedelta(days=1)
>>> tomorrow = today +  datetime.timedelta(days=1)
>>> print yesterday, today, tomorrow
2013-09-15 2013-09-16 2013-09-17

>>> import datetime
>>> today = datetime.datetime.today()
>>> dir(today)
['__add__', '__class__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rsub__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', 'astimezone', 'combine', 'ctime', 'date', 'day', 'dst', 'fromordinal', 'fromtimestamp', 'hour', 'isocalendar', 'isoformat', 'isoweekday', 'max', 'microsecond', 'min', 'minute', 'month', 'now', 'replace', 'resolution', 'second', 'strftime', 'strptime', 'time', 'timetuple', 'timetz', 'today', 'toordinal', 'tzinfo', 'tzname', 'utcfromtimestamp', 'utcnow', 'utcoffset', 'utctimetuple', 'weekday', 'year']

In [1]: import datetime
In [2]: today = datetime.date.today()
In [3]: today
Out[3]: datetime.date(2013, 9, 16)

In [9]: datetime.datetime.now()
Out[9]: datetime.datetime(2013, 9, 16, 15, 13, 20, 876985)

In [10]: datetime.datetime.now().time()
Out[10]: datetime.time(15, 13, 21, 652054)

>>> import datetime
>>> NewYearsEve = datetime.date(2013, 12, 31)
>>> import datetime
>>> NewYearsDay = datetime.date(2012, 01, 01)
>>> NewYearsEve = datetime.date(2011, 12, 31)
>>> oneday = NewYearsDay - NewYearsEve
>>> oneday
datetime.timedelta(1)
>>> print oneday
1 day, 0:00:00


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 当前时区的名称
%% %号本身


Questions:
Q1.Python获取时间戳的方法:
In [50]: time.time()
Out[50]: 1379315024.833934

时间戳转换为普通时间
In [63]: time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(1379314970.0))
Out[63]: '2013-09-16 15:02:50'

In [64]: time.strftime('%Y-%m-%d %H:%M:%S',time.gmtime(1379314970.0))
Out[64]: '2013-09-16 07:02:50'


Q2.寻找上一个星期五
你想知道上一个星期五的日期(包括今天,如果今天是星期五)并以特定格式将其打印出来。
#!/usr/bin/env python
#-*-coding:utf-8-*-

import datetime,calendar
last_friday = datetime.date.today()
one_day = datetime.timedelta(days=1)
while last_friday.weekday() != calendar.FRIDAY:
    last_friday -= one_day
print last_friday.strftime('%A, %d-%b-%Y')
#Friday, 13-Sep-2013


第二种方法(模运算)
#!/usr/bin/env python
#-*-coding:utf-8-*-
import datetime, calendar
today = datetime.date.today()

target_day = calendar.FRIDAY
this_day = today.weekday()

delta_to_target = (this_day-target_day) % 7
last_friday = today - datetime.timedelta(days=delta_to_target)
print last_friday.strftime('%d-%b-%Y')
#13-Sep-2013


参考资料:
http://docs.python.org/2/library/time.html
http://docs.python.org/2/library/datetime.html
分享到:
评论

相关推荐

    学学Python_57标准模块5 时间模块

    在Python编程语言中,时间模块(time module)是处理时间数据和执行与时间相关的操作的重要工具。本篇文章将深入探讨时间模块的使用方法及其在实际编程中的应用。 首先,我们来了解一下时间模块的基础知识。Python...

    python3 标准模块实例学习 原版

    在Python3中,标准库扮演着至关重要的角色,它包含了大量的预装模块,为各种常见任务提供了便利的解决方案。本篇文章将深入探讨Python3标准模块的实例学习,帮助你更好地系统地学习和熟练掌握这些模块。 首先,我们...

    详解python时间模块中的datetime模块

    Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime。time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致。相比于time模块,datetime模块的接口则更直观、更容易调用。 ...

    python各模块思维导图

    这个"python各模块思维导图"的资源旨在帮助学习者更好地理解和掌握Python中的各个核心模块及其功能。通过思维导图的形式,我们可以更直观地看到Python生态系统中的各个部分是如何相互关联的。 在Python中,模块是...

    python中时间模块的基本使用教程

    ### Python中时间模块的基本使用教程 #### 前言 在软件开发过程中,与时间相关的功能是必不可少的一部分,比如记录事件的时间、定时任务、数据统计分析等场景都会涉及到时间的操作。Python提供了强大的时间处理功能...

    python数据分析模块全集

    **Matplotlib** 是Python中最广泛使用的数据可视化库,可以创建各种图表,如线图、散点图、柱状图、直方图等。Matplotlib的pyplot子模块提供了一种与MATLAB类似的接口,使得用户能够轻松地绘制复杂的图形。此外,它...

    Python模块_pandasnumpy

    `pandas`是Python中的一个数据结构库,它提供了一种高效的数据框架,称为DataFrame,用于存储和处理结构化数据。DataFrame可以看作是表格型数据,具有列名和行索引,类似于电子表格或SQL数据库中的表。`pandas`还...

    python3时间模块的导入使用和相关注释说明.py

    python3时间模块的导入使用和相关注释说明.

    Python常用模块---psutil下载

    Python中的`psutil`模块是一个跨平台库,用于获取系统进程和资源监控的信息。它提供了在操作系统级别收集信息的能力,包括但不限于CPU使用率、内存使用情况、网络活动、磁盘I/O以及进程详细信息。`psutil`在Python中...

    py代码-更简单的Python时间模块

    首先,Python中的`datetime`模块是处理日期和时间的核心模块,它包含了`date`、`time`、`datetime`、`timedelta`等类,以及一些与时间相关的函数。在`main.py`文件中,我们可能会看到如何创建和操作这些对象的例子。...

    Python常用内置标准模块与扩展库

    一、Python常用的内置标准模块 二、Python常用扩展库  Python提供了大约200多个内置的标准模块,涵盖了Python运行时服务、文字模式匹配、操作系统接口、数学运算、对象永久保存、网络和Internet脚本和GUI构建等...

    Python中time模块详解.pdf

    Python 中的 time 模块提供了处理时间相关的功能,包括时间戳、格式化的时间字符串和元组(struct_time)。在 Python 中,时间可以用三种方式表示:时间戳、格式化的时间字符串和元组(struct_time)。 时间戳是从 ...

    python rosbag 模块

    Python中的rosbag模块是ROS(Robot Operating System)生态系统的一部分,用于处理ROS系统中的数据记录和回放。ROS是一个开源机器人软件框架,它提供了一个结构化的消息传递机制,使得不同的节点可以相互通信,同时...

    python dateutil模块 64位

    总之,`dateutil`模块是Python中处理日期和时间的不可或缺的工具,特别是在64位系统中,它能够处理更大的数据范围,满足各种复杂的需求。无论是在数据分析、日程管理还是其他领域,`dateutil`都能提供强大而灵活的...

    Python-TimeNLP的python3版本中文时间表达词转换

    Python-TimeNLP是一个针对Python3设计的自然语言处理库,特别关注...总之,Python-TimeNLP为处理中文文本中的日期时间信息提供了一个强大且灵活的工具,是Python开发人员在进行自然语言处理任务时值得考虑的一个库。

    python同步时间脚本

    1. **Python时间模块**:脚本可能会使用Python内置的`datetime`, `time`或`pytz`库来处理和校准时间。例如,`datetime.now()`获取当前时间,`pytz`库可以用于处理时区转换。 2. **操作系统接口**:为了修改系统时间...

    14Python time时间模块笔记 - 副本.md

    14Python time时间模块笔记 - 副本

    Python常用模块解析汇总

    本篇文章将对Python中的一些常用模块进行解析,包括time、datetime、random以及与操作系统交互密切的os模块,还有与解析器相关的sys模块。 1. **time模块**:time模块提供了处理时间的各种功能。例如,`time.sleep...

Global site tag (gtag.js) - Google Analytics