一、time模块

time模块中时间表现的格式主要有三种:

  a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量

  b、struct_time时间元组,共有九个元素组。

  c、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。

1、时间格式转换图:

2、主要time生成方法和time格式转换方法实例:

# 生成timestamp
time.time()
# 1558617411.1751661
#struct_time ==> timestamp
time.mktime(time.localtime())
# 1558617411.1751661 #生成struct_time
# timestamp ==> struct_time 本地时间
time.localtime()
time.localtime(time.time())
# time.struct_time(tm_year=2019, tm_mon=5, tm_mday=23, tm_hour=21, tm_min=20, tm_sec=7, tm_wday=3, tm_yday=143, tm_isdst=0) # timestamp ==> struct_time 格林威治时间
time.gmtime()
time.gmtime(time.time())
# time.struct_time(tm_year=2019, tm_mon=5, tm_mday=23, tm_hour=13, tm_min=20, tm_sec=43, tm_wday=3, tm_yday=143, tm_isdst=0) #format_time ==> struct_time
time.strptime('2019-05-23 21:20:44', '%Y-%m-%d %X')
# time.struct_time(tm_year=2019, tm_mon=5, tm_mday=23, tm_hour=13, tm_min=20, tm_sec=44, tm_wday=3, tm_yday=143,tm_isdst=-1) #生成format_time
#struct_time ==> format_time
time.strftime("%Y-%m-%d %X")
time.strftime("%Y-%m-%d %X",time.localtime())
#'2019-05-23 21:23:56' #生成固定格式的时间表示格式
time.asctime(time.localtime())
time.ctime(time.time())
'Thu May 23 21:24:21 2019'

struct_time元组元素结构

属性                            值
tm_year(年) 比如2011
tm_mon(月) 1 - 12
tm_mday(日) 1 - 31
tm_hour(时) 0 - 23
tm_min(分) 0 - 59
tm_sec(秒) 0 - 61
tm_wday(weekday) 0 - 6(0表示周日)
tm_yday(一年中的第几天) 1 - 366
tm_isdst(是否是夏令时) 默认为-1

format time结构化表示

格式 含义
%a 本地(locale)简化星期名称
%A 本地完整星期名称
%b 本地简化月份名称
%B 本地完整月份名称
%c 本地相应的日期和时间表示
%d 一个月中的第几天(01 - 31)
%H 一天中的第几个小时(24小时制,00 - 23)
%I 第几个小时(12小时制,01 - 12)
%j 一年中的第几天(001 - 366)
%m 月份(01 - 12)
%M 分钟数(00 - 59)
%p 本地am或者pm的相应符
%S 秒(01 - 61)
%U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。
%w 一个星期中的第几天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始。
%x 本地相应日期
%X 本地相应时间
%y 去掉世纪的年份(00 - 99)
%Y 完整的年份
%Z 时区的名字(如果不存在为空字符)
%% ‘%’字符

常见结构化时间组合:

>>> import time
>>> print(time.strftime("%Y-%m-%d %X"))
2019-05-23 22:32:56

3.time时间加减

>>> import time
>>> t1 = time.time()
>>> t2=t1+10000
>>> print(t2)
1558622085.0138748
>>> print(time.ctime(t1))
Thu May 23 22:34:35 2019
>>> print(time.ctime(t2))
Fri May 24 01:21:15 2019

二、datetime模块

datatime模块重新封装了time模块,提供更多接口,提供的类有:date,time,datetime,timedelta,tzinfo。

>>> import datetime
>>> print([obj for obj in dir(datetime) if not obj.startswith("__")])
['MAXYEAR', 'MINYEAR', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']

1、date类

datetime.date(year, month, day)

静态方法和字段

date.max、date.min:date对象所能表示的最大、最小日期;
date.resolution:date对象表示日期的最小单位。这里是天。
date.today():返回一个表示当前本地日期的date对象;
date.fromtimestamp(timestamp):根据给定的时间戮,返回一个date对象;
>>> from datetime import *
>>> import time
>>>
>>> print('date.max:',date.max)
date.max: 9999-12-31
>>> print('date.min:',date.min)
date.min: 0001-01-01
>>> print('date.today():',date.today())
date.today(): 2019-05-23
>>> print('date.fromtimestamp():',date.fromtimestamp(time.time()))
date.fromtimestamp(): 2019-05-23

方法和属性

d1 = date(2019,05,24)#date对象
d1.year、date.month、date.day:年、月、日;
d1.replace(year, month, day):生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性。(原有对象仍保持不变)
d1.timetuple():返回日期对应的time.struct_time对象;
d1.weekday():返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推;
d1.isoweekday():返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此类推;
d1.isocalendar():返回格式如(year,month,day)的元组;
d1.isoformat():返回格式如'YYYY-MM-DD’的字符串;
d1.strftime(fmt):和time模块format相同。
>>> from datetime import *
>>>
>>> now = date(2019, 5, 24)
>>> tomorrow = now.replace(day = 27)
>>> print('now:', now, ', tomorrow:', tomorrow )
now: 2019-05-24 , tomorrow: 2019-05-27
>>> print('timetuple():', now.timetuple() )
timetuple(): time.struct_time(tm_year=2019, tm_mon=5, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=144, tm_isdst=-1)
>>> print('weekday():', now.weekday() )
weekday(): 4
>>> print('isoweekday():', now.isoweekday() )
isoweekday(): 5
>>> print('isocalendar():', now.isocalendar() )
isocalendar(): (2019, 21, 5)
>>> print('isoformat():', now.isoformat() )
isoformat(): 2019-05-24
>>> print('strftime():', now.strftime("%Y-%m-%d") )
strftime(): 2019-05-24

2、time类

datetime.time(hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] )

静态方法和字段

time.min、time.max:time类所能表示的最小、最大时间。其中,time.min = time(0, 0, 0, 0), time.max = time(23, 59, 59, 999999);
time.resolution:时间的最小单位,这里是1微秒;

方法和属性

t1 = datetime.time(16,45,25)#time对象
t1.hour、t1.minute、t1.second、t1.microsecond:时、分、秒、微秒;
t1.tzinfo:时区信息;
t1.replace([ hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] ):创建一个新的时间对象,用参数指定的时、分、秒、微秒代替原有对象中的属性(原有对象仍保持不变);
t1.isoformat():返回型如"HH:MM:SS"格式的字符串表示;
t1.strftime(fmt):同time模块中的format;

												

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

  1. Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块

    Python第十五天  datetime模块 time模块   thread模块  threading模块  Queue队列模块  multiprocessing模块  paramiko模块  fab ...

  2. Python之路(第十六篇)xml模块、datetime模块

    一.xml模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单, xml比较早,早期许多软件都是用xml,至今很多传统公司如金融行业的很多系统的接口还主要 ...

  3. (转)python time模块和datetime模块详解

    python time模块和datetime模块详解 原文:http://www.cnblogs.com/tkqasn/p/6001134.html 一.time模块 time模块中时间表现的格式主要 ...

  4. python time模块 sys模块 collections模块 random模块 os模块 序列化 datetime模块

    一 collections模块 collections模块在内置的数据类型,比如:int.str.list.dict等基础之上额外提供了几种数据类型. 参考博客 http://www.pythoner ...

  5. python中time模块和datetime模块

    time模块和datetime模块 时间分为三种模式(time 模块) 时间戳   (time.time()) 格式化字符串 (time.strftime(%Y-%m-%d %H:%M:%S %p)) ...

  6. Time模块和datetime模块

    Time模块和datetime模块 一. 调用 import time       #调用time模块 二.使用方法 1.time.time 拿到时间戳.以Linux诞生年份1970年开始计算到程序执 ...

  7. Python学习笔记:time模块和datetime模块(时间和日期)

    time模块 time模块通常用来操作时间戳信息(各种“秒”),常用的方法有: time.sleep(seconds):将当前程序阻塞指定秒数,然后继续运行程序. time.time():返回当前时间 ...

  8. python time模块和datetime模块详解

    一.time模块 time模块中时间表现的格式主要有三种: a.timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b.struct_time时间元组,共 ...

  9. python time模块和datetime模块

    一.time模块 time模块中时间表现的格式主要有三种: a.timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b.struct_time时间元组,共 ...

随机推荐

  1. CRLF、CR、LF详解

    名词解释 CR:Carriage Return,对应ASCII中转义字符\r,表示回车 LF:Linefeed,对应ASCII中转义字符\n,表示换行 CRLF:Carriage Return &am ...

  2. Leetcode之动态规划(DP)专题-64. 最小路径和(Minimum Path Sum)

    Leetcode之动态规划(DP)专题-64. 最小路径和(Minimum Path Sum) 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. ...

  3. 一加手机刷入第三方Rec

    首先阐述一下刷机的整体流程: 备份数据(可选):短信.联系人.通话记录.图片.应用数据的云端同步. 解锁 刷入第三方Recovery(简称Rec). 进入第三方Rec,刷第三方ROM. 刷机成功 解锁 ...

  4. Linux 基础整理

    Linux系统的启动过程大体上可分为五部分:内核的引导:运行init:系统初始化:建立终端 :用户登录系统. 用户登录 Linux的账号验证程序是login,login会接收mingetty传来的用户 ...

  5. (转) pip Fatal error in launcher: Unable to create process using

    接上篇“Eclipse启动报错:JVM terminated. Exit code=2”,今天把Python的安装位置也从C盘剪切到了D盘, 然后修改了Path环境变量中对应的盘符:D:\Python ...

  6. PHP xdebug 断点调试

    转载自: https://blog.csdn.net/qq_32631847/article/details/82054011

  7. confluent部署:

    confluent介绍https://www.cnblogs.com/dadadechengzi/p/9506964.html kafka connect:https://www.cnblogs.co ...

  8. max-http-header-size 引发的一起血案(附:查gc方法)

    最近在做项目的时候发现其中一个服务出现了性能上的问题,项目启动后,出现内存溢出异常. 查看堆内存使用情况 分析然后找到占用空间的类,当时是byte[]占用99%的空间,然后点开查看实例发现是http占 ...

  9. [转贴]Linux内核LTS长期支持版生命周期

    Linux内核LTS长期支持版生命周期 https://blog.51cto.com/dangzhiqiang/1894026 搞不懂长期支持版本的特点和区别. 党志强关注0人评论4371人阅读201 ...

  10. [LGP5115] Check,Check,Check one two!

    神奇的思路,还是要学习一个. 题意:给你一个字符串,并定义两个前缀的lcs.两个后缀的lcp,求式子膜\(2^{64}\)的值. \[ \sum_{1\le i<j\le n} lcp(i,j) ...