时间模块

python 中时间表示方法有:时间戳,即从1975年1月1日00:00:00到现在的秒数;格式化后的时间字符串;时间struct_time 元组。
struct_time元组中元素主要包括tm_year(年)、tm_mon(月)、tm_mday(日)、tm_hour(时)、tm_min(分)、tm_sec(秒)、tm_wday(weekday0 - 6(0表示周日))、tm_yday(一年中的第几天1 - 366)、tm_isdst(是否是夏令时)

1. time

  • 常用函数

    • time.time() 返回当前时间戳
    >>> time.time()
    1465370844.096474
    • time.ctime() 返回这种格式的时间字符'Wed Jun 8 15:27:48 2016',显示当前时间.同时也可以转换时间戳
    >>> time.ctime()
    'Wed Jun 8 15:27:48 2016' >>> time.ctime(time.time()-86400)
    'Tue Jun 7 15:29:36 2016'
    • time.gmtime 将时间戳转换成struct_time格式,此显示的是格林威治0时区的时间
    >>> time.gmtime()
    time.struct_time(tm_year=2016, tm_mon=6, tm_mday=8, tm_hour=7, tm_min=34, tm_sec=28, tm_wday=2, tm_yday=160, tm_isdst=0) >>> time.gmtime(time.time() - 86400)
    time.struct_time(tm_year=2016, tm_mon=6, tm_mday=7, tm_hour=7, tm_min=34, tm_sec=41, tm_wday=1, tm_yday=159, tm_isdst=0)
    • time.localtime 将当前系统时间戳转化为struct_time格式

      >>> time.localtime()
      time.struct_time(tm_year=2016, tm_mon=6, tm_mday=8, tm_hour=15, tm_min=35, tm_sec=33, tm_wday=2, tm_yday=160, tm_isdst=0) >>> time.localtime(time.time() - 86400)
      time.struct_time(tm_year=2016, tm_mon=6, tm_mday=7, tm_hour=15, tm_min=37, tm_sec=10, tm_wday=1, tm_yday=159, tm_isdst=0)
    • time.mktime 将struct_time格式转回成时间戳
    >>> now = time.localtime()
    >>> now
    time.struct_time(tm_year=2016, tm_mon=6, tm_mday=8, tm_hour=15, tm_min=38, tm_sec=28, tm_wday=2, tm_yday=160, tm_isdst=0)
    >>> time.mktime(now)
    1465371508.0
    • time.strftime 将struct_time格式转成指定的字符串格式
    >>> now = time.localtime()
    >>> now
    time.struct_time(tm_year=2016, tm_mon=6, tm_mday=8, tm_hour=15, tm_min=38, tm_sec=28, tm_wday=2, tm_yday=160, tm_isdst=0)
    >>> last = time.localtime(time.time() - 86400)
    >>> last
    time.struct_time(tm_year=2016, tm_mon=6, tm_mday=7, tm_hour=15, tm_min=40, tm_sec=23, tm_wday=1, tm_yday=159, tm_isdst=0)
    >>> time.strftime("%Y-%m-%d %H:%M:%S",last)
    '2016-06-07 15:40:23'
    >>> time.strftime("%Y-%m-%d %H:%M:%S",now)
    '2016-06-08 15:38:28'
    • time.strptime 将自定义时间格式的字符串转换为struct_time格式
    >>> time.strptime("2016-06-08","%Y-%m-%d")
    time.struct_time(tm_year=2016, tm_mon=6, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=160, tm_isdst=-1)
    >>> time.strptime("2016-06-08 15:50:44","%Y-%m-%d %H:%M:%S")
    time.struct_time(tm_year=2016, tm_mon=6, tm_mday=8, tm_hour=15, tm_min=50, tm_sec=44, tm_wday=2, tm_yday=160, tm_isdst=-1)
    • time.sleep 暂停时间,类似于shell的sleep()
  • 其他

    • 时间格式:
    格式 说明
    %a 显示简化星期名称
    %A 显示完整星期名称
    %b 显示简化月份名称
    %B 显示完整月份名称
    %c 本地相应的日期和时间表示
    %d 显示当月第几天
    %H 按24小时制显示小时
    %I 按12小时制显示小时
    %j 显示当年第几天
    %m 显示月份
    %M 显示分钟数)
    %p 本地am或者pm的相应符
    %S 显示秒数)
    %U 一年中的星期数
    %w 显示在星期中的第几天,默认从0开始表示周一
    %W 和%U基本相同
    %x 本地相应日期
    %X 本地相应时间
    %y 去掉世纪的年份(00 - 99)
    %Y 完整的年份
    %Z 时区的名字(如果不存在为空字符)
    %% ‘%’字符
    • 时间函数之间转换关系

2. datetime

datime是time的升级版,可以对date(日期)、time(时间)、datetime(日期时间)等三种单独管理。主要是由下面四个类组成

  • datetime.datetime常用函数(datetime.date datetime.time通用)
#datetime.datetime.today() 默认返回当前日期和时间的对象,也可以自定义日期和时间

    >>> today = datetime.datetime.today()
>>> print(today)
2016-06-08 16:34:08.163371
>>> last = datetime.datetime(2016,5,8,11,23,55) #注意此处表示日期只能是实际月份,不能带0
>>> print(last)
2016-05-08 11:23:55 >>>last = datetime.datetime(2016,05,08,11,23,55)
File "<stdin>", line 1
last = datetime.datetime(2016,05,08,11,23,55)
^
SyntaxError: invalid token #datetime.datetime.now() 返回当前时间
>>> datetime.datetime.now()
datetime.datetime(2016, 6, 8, 16, 44, 29, 694398) # datetime.strftime(format) #自定义格式化时间
>>> today.strftime("%I:%M:%S %p %d/%m/%Y")
'04:34:08 PM 08/06/2016'

# datetime.datetime.timple() 将时间转换为struct_time 格式
>>>today.timetuple()
time.struct_time(tm_year=2016, tm_mon=6, tm_mday=8, tm_hour=16, tm_min=34, tm_sec=8, tm_wday=2, tm_yday=160, tm_isdst=-1) #datetime.replace()返回一个替换后的date对象
>>>last = today.replace(1949,10,1)
>>> print(last)
1949-10-01 16:34:08.163371
>>> last = today.replace(year=1919,month=3,day=2)
>>> print(last)
1919-03-02 16:34:08.163371 # datetime.datetime.strptime 将字符串转换为日志格式对象
>>> a = "2016-06-08 17:18:19"
>>> b = datetime.datetime.strptime(a,"%Y-%m-%d %H:%M:%S")
>>> print(a)
2016-06-08 17:18:19
>>> print(b)
2016-06-08 17:18:19
>>> print(type(a))
<class 'str'>
>>> print(type(b))
<class 'datetime.datetime'>
  • datetime.timedelta 时间运算

可用参数:days seconds microseconds milliseconds minutes hours weeks

today = datetime.datetime.now()
>>> print(today)
2016-06-08 16:51:31.698122
>>> yesterday = today - datetime.timedelta(days=1)
>>> print(yesterday)
2016-06-07 16:51:31.698122
>>> last_hour = today - datetime.timedelta(hours=1)
>>> print(last_hour)
2016-06-08 15:51:31.698122

python时间模块-time和datetime的更多相关文章

  1. python时间模块time,datetime

    时间模块time.datetime 模块(module)是 Python 中非常重要的东西,你可以把它理解为 Python 的扩展工具.换言之,Python 默认情况下提供了一些可用的东西,但是这些默 ...

  2. python 时间模块time,datetime详细介绍

    模块(module)是 Python 中非常重要的东西,你可以把它理解为 Python 的扩展工具.换言之,Python 默认情况下提供了一些可用的东西,但是这些默认情况下提供的还远远不能满足编程实践 ...

  3. python 时间模块time,datetime

    模块(module)是 Python 中非常重要的东西,你可以把它理解为 Python 的扩展工具.换言之,Python 默认情况下提供了一些可用的东西,但是这些默认情况下提供的还远远不能满足编程实践 ...

  4. Python常用模块-时间模块(time&datetime)

    Python常用模块-时间模块(time & datetime) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.初始time模块 #!/usr/bin/env pyth ...

  5. 浅谈Python时间模块

    浅谈Python时间模块 今天简单总结了一下Python处理时间和日期方面的模块,主要就是datetime.time.calendar三个模块的使用.希望这篇文章对于学习Python的朋友们有所帮助 ...

  6. python常用模块之time&datetime模块

    python常用模块之time&datetime模块 在平常的代码中,我们经常要与时间打交道.在python中,与时间处理有关的模块就包括:time和datetime,下面分别来介绍: 在开始 ...

  7. python内建时间模块 time和datetime

    时间模块 UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间.在中国为UTC+8.DST(Daylight Saving Time)即夏令时. ...

  8. Python时间模块datetime用法

    时间模块datetime是python内置模块,datetime是Python处理日期和时间的标准库. 1,导入时间模块 from datetime import datetime 2,实例 from ...

  9. python常用标准库(时间模块 time和datetime)

    常用的标准库 time时间模块 import time time -- 获取本地时间戳 时间戳又被称之为是Unix时间戳,原本是在Unix系统中的计时工具. 它的含义是从1970年1月1日(UTC/G ...

随机推荐

  1. Bink Player

    class CBIKMaterial { public: CBIKMaterial(); ~CBIKMaterial(); bool Init(const char *pFileName); void ...

  2. C#操作XML方法集合

    一 前言 先来了解下操作XML所涉及到的几个类及之间的关系  如果大家发现少写了一些常用的方法,麻烦在评论中指出,我一定会补上的!谢谢大家 * 1 XMLElement 主要是针对节点的一些属性进行操 ...

  3. 是什么时候开始学习gulp了

    转自:http://www.ydcss.com/archives/18 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重 ...

  4. 从零开始搭建架构实施Android项目

    我们先假设一个场景需求:刚有孩子的爸爸妈妈对用照片.视频记录宝宝成长有强烈的意愿,但苦于目前没有一款专门的手机APP做这件事.A公司洞察到市场需求,要求开发团队尽快完成Android客户端的开发.以下 ...

  5. Visual Studio 2015初体验——前端开发工作的问题

    前言 因为后台项目开发适用的VS2015,为了跟后台开发配合,前端部门也统一从VS2013升级到了VS2015. 因为C盘空间不足要先卸载,这里就不说卸载2013时花了多长时间,只说安装2015时用了 ...

  6. 服务链(Service Chaining,or Service Function Chaining,SFC,功能服务链)

    Software-configured  service  chaining  provides  the  capability  to  dynamically include best-of-b ...

  7. hihocoder 1260

    之前做过的oj, acm题目忘了很多了, 又要开始要刷题了, go on! #1260 : String Problem I 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描 ...

  8. Android开发之Notification通知

    消息通知使我们很常见的,当收到一条消息的时候,通知栏会显示一条通知: 直接看代码: public class MainActivity extends Activity { private Notif ...

  9. Windows10一周年庆典壁纸

    example: 下载:http://pan.baidu.com/s/1b55D5k

  10. 关于#pragma once和#ifndefine组合的区别

    最近在看duilib代码,发现头文件既有#pragma once 又有 #ifndefine...#define,忽然就觉得有点不解,因为据我所知这两者都是防止头文件二次包含的. 经过下面两位的解释后 ...