time&datetime模块详解
一.time模块
1.时间格式转换图:
2.time模块中时间表现的格式主要有三种:
a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
b、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。
c、struct_time时间元组,共有九个元素组,struct_time的函数主要有gmtime(),localtime(),strptime()
>>> import time
>>> time.localtime()
time.struct_time(tm_year=2017, tm_mon=9, tm_mday=26, tm_hour=18, tm_min=14, tm_sec=51, tm_wday=1, tm_yday=269, tm_isdst=0)
下面是时间元组九个元素的解释:
tm_year :年
tm_mon :月(1-12)
tm_mday :日(1-31)
tm_hour :时(0-23)
tm_min :分(0-59)
tm_sec :秒(0-59)
tm_wday :星期几(0-6,0表示周日)
tm_yday :一年中的第几天(1-366)
tm_isdst :是否是夏令时(默认为-1)
3.time模块中常用的函数
(1)time.time()返回当前时间的时间戳
>>> time.time()
1506421280.1430917
(2)time.localtime([secs]) -> (tm_year,tm_mon,tm_mday,tm_hour,tm_min,tm_sec,tm_wday,tm_yday,tm_isdst)
将一个时间戳转换为当前时区的struct_time,即时间数组格式的时间。
参数:
sec – 转换为time.struct_time类型的对象的秒数
如果secs参数未提供,则以当前时间为准(即会默认调用time.time())
#未给参数
>>> time.localtime()
time.struct_time(tm_year=2017, tm_mon=9, tm_mday=26, tm_hour=18, tm_min=56, tm_sec=40, tm_wday=1, tm_yday=269, tm_isdst=0)
#给参数
>>> time.localtime(144023740)
time.struct_time(tm_year=1974, tm_mon=7, tm_mday=26, tm_hour=6, tm_min=35, tm_sec=40, tm_wday=4, tm_yday=207, tm_isdst=0)
(3)time.mktime(t):将一个struct_time转化为时间戳
time.mktime() 函数执行与gmtime(), localtime()相反的操作,它接收struct_time对象作为参数,返回用秒数表示时间的浮点数。
如果输入的值不是一个合法的时间,将触发 OverflowError 或 ValueError。
参数:
t – 结构化的时间或者完整的9位元组元素
>>> time.mktime(time.localtime())
1506476811.0
(4)time.sleep(secs):线程推迟指定的时间运行
前程推迟时间,单位为秒
睡眠10秒
>>> time.sleep(10)
>>>
(5)time.strftime( format [, t] ) ->string
返回字符串表示的当地时间。
把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串,格式由参数format决定。如果未指定,将传入time.localtime()。如果元组中任何一个元素越界,就会抛出ValueError的异常。函数返回的是一个可读表示的本地时间的字符串。
参数:
- format:格式化字符串
- t :可选的参数是一个struct_time对象
时间字符串支持的格式符号:(区分大小写)
%a 本地星期名称的简写(如星期四为Thu)
%A 本地星期名称的全称(如星期四为Thursday)
%b 本地月份名称的简写(如八月份为agu)
%B 本地月份名称的全称(如八月份为august)
%c 本地相应的日期和时间的字符串表示(如:15/08/27 10:20:06)
%d 一个月中的第几天(01 - 31)
%f 微妙(范围0.999999)
%H 一天中的第几个小时(24小时制,00 - 23)
%I 第几个小时(12小时制,0 - 11)
%j 一年中的第几天(001 - 366)
%m 月份(01 - 12)
%M 分钟数(00 - 59)
%p 本地am或者pm的相应符
%S 秒(00 - 61)
%U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之 前的所有天数都放在第0周。
%w 一个星期中的第几天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始。
%x 本地相应日期字符串(如15/08/01)
%X 本地相应时间字符串(如08:08:10)
%y 去掉世纪的年份(00 - 99)两个数字表示的年份
%Y 完整的年份(4个数字表示年份)
%z 与UTC时间的间隔(如果是本地时间,返回空字符串)
%Z 时区的名字(如果是本地时间,返回空字符串)
%% ‘%’字符
实例:通过函数将struct_time转成格式字符串
>>> a = time.localtime()
>>> a
time.struct_time(tm_year=2017, tm_mon=9, tm_mday=27, tm_hour=9, tm_min=53, tm_sec=46, tm_wday=2, tm_yday=270, tm_isdst=0)
>>> time.strftime('%Y%m%d',a)
''
>>> time.strftime('%Y-%m-%d',a)
'2017-09-27'
也可以使用字符串拼接成格式化字符串:
>>> a
time.struct_time(tm_year=2017, tm_mon=9, tm_mday=27, tm_hour=9, tm_min=53, tm_sec=46, tm_wday=2, tm_yday=270, tm_isdst=0)
>>> print(str(a.tm_year)+"年"+str(a.tm_mon)+"月"+str(a.tm_mday)+"日")
2017年9月27日
获取当前时间的年月日或时分秒:
>>> print(time.strftime('%H:%M:%S'))
10:06:54
>>> print(time.strftime('%Y-%m-%d'))
2017-09-27
(6)time.strptime(string,format) -> struct_time
将格式字符串转化成struct_time.
该函数是time.strftime()函数的逆操作。time strptime() 函数根据指定的格式把一个时间字符串解析为时间元组。所以函数返回的是struct_time对象。
参数:
- string :时间字符串
- format:格式化字符串
创建一个时间字符串变量stime
>>> stime = "2017-08-24 23:01:30"
>>> print(time.strptime(stime,"%Y-%m-%d %H:%M:%S"))
time.struct_time(tm_year=2017, tm_mon=8, tm_mday=24, tm_hour=23, tm_min=1, tm_sec=30, tm_wday=3, tm_yday=236, tm_isdst=-1)
(7)time.asctime( [tuple] ) -> string
把一个表示时间的元组或者struct_time表示为 ‘Sun Aug 23 14:31:59 2015’ 这种形式。如果没有给参数,会将time.localtime()作为参数传入。
参数:
t – 9个元素的元组或者通过函数 gmtime() 或 localtime() 返回的时间值
>>> time.asctime()
'Wed Sep 27 11:52:23 2017'
(8)gmtime([seconds]) -> (tm_year, tm_mon, tm_mday, tm_hour, tm_min,tm_sec, tm_wday, tm_yday, tm_isdst)
将一个时间戳转换为UTC时区的struct_time
time.gmtime() 函数将一个时间戳转换为UTC时区(0时区)的struct_time,可选的参数sec表示从1970-1-1
00:00:00以来的秒数。其默认值为time.time(),函数返回time.struct_time类型的对象。(struct_time是在time模块中定义的表示时间的对象)。
如果seconds参数未提供,则以当前时间为准。
参数:
seconds – 转换为time.struct_time类型的对象的秒数
>>> time.gmtime()
time.struct_time(tm_year=2017, tm_mon=9, tm_mday=27, tm_hour=4, tm_min=5, tm_sec=39, tm_wday=2, tm_yday=270, tm_isdst=0)
>>> time.gmtime(1225678789)
time.struct_time(tm_year=2008, tm_mon=11, tm_mday=3, tm_hour=2, tm_min=19, tm_sec=49, tm_wday=0, tm_yday=308, tm_isdst=0)
>>>
(9)time.ctime([secs])
把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果为指定参数,将会默认使用time.time()作为参数。它的作用相当于time.asctime(time.localtime(secs))
参数:sec – 要转换为字符串时间的秒数
>>> time.ctime()
'Wed Sep 27 12:08:00 2017'
>>> time.ctime(1600000000)
'Sun Sep 13 20:26:40 2020'
二.datetime模块
import datetime
print(datetime.datetime.now()) #获取当前时间
print(datetime.datetime.now() + datetime.timedelta(3)) #获取三天后的时间
print(datetime.datetime.now() + datetime.timedelta(hours=-3)) #获取下个小时以前的时间
print(datetime.datetime.now() + datetime.timedelta(minutes=30,hours=3)) #获取三个半小时后的时间
time&datetime模块详解的更多相关文章
- (转)python time模块和datetime模块详解
python time模块和datetime模块详解 原文:http://www.cnblogs.com/tkqasn/p/6001134.html 一.time模块 time模块中时间表现的格式主要 ...
- datetime 模块详解 -- 基本的日期和时间类型
转自:https://www.cnblogs.com/fclbky/articles/4098204.html datetime 模块提供了各种类用于操作日期和时间,该模块侧重于高效率的格式化输出 在 ...
- python time模块和datetime模块详解
一.time模块 time模块中时间表现的格式主要有三种: a.timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b.struct_time时间元组,共 ...
- Python全栈之路----常用模块----datetime模块详解
相比于time模块,datetime模块的接口则更直观,更容易调用. datetime模块定义了下面这几个类: datetime.date:表示日期的类,常用的属性有year,month,day: d ...
- day21 Pythonpython time模块和datetime模块详解
一.time模块 time模块中时间表现的格式主要有三种: a.timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b.struct_time时间元组,共 ...
- 【python】 time模块和datetime模块详解 【转】
一.time模块 time模块中时间表现的格式主要有三种: a.timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b.struct_time时间元组,共 ...
- time模块和datetime模块详解
一.time模块 time模块中时间表现的格式主要有三种: a.timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b.struct_time时间元组,共 ...
- python datetime模块详解
datetime是python当中比较常用的时间模块,用于获取时间,时间类型之间转化等,下文介绍两个实用类. 一.datetime.datetime类: datetime.datetime.now() ...
- datetime模块详解
时间运算 >>> datetime.datetime.now() #当前年月 时间datetime.datetime(2018, 2, 13, 16, 12, 6, 850532)& ...
随机推荐
- ssl证书类型
SSL证书依据功能和品牌不同分类有所不同,但SSL证书作为国际通用的产品,最为重要的便是产品兼容性(即证书根预埋技术),因为他解决了网民登录网站的信任问题,网民可以通过SSL证书轻松识别网站的真实身份 ...
- Java泛型 T.class的获取
public interface BaseDao<T> { T get(String id); } import java.lang.reflect.ParameterizedType; ...
- org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password:
tationProcessor' to allow for resolving potential circular referencesDEBUG 2018-05-28 11:32:35,016 o ...
- ubuntu16.04安装libzip库
sudo apt install libzip-dev
- Web开发——HTML基础(HTML表单/下拉列表/多行输入)
参考: 参考:http://www.w3school.com.cn/html/html_forms.asp 目录: 1.<form> 元素 1.1 <input> 元素(输入属 ...
- Linux-003-Resource temporarily unavailable
Jenkins构建任务向服务器发送war包时提示信息如下所示: 由上述信息可知通过SSH命令连接失败.通过Client连接服务器,提示信息如下: 提示信息说明资源暂时不可用. 原因一般是因为用户或应用 ...
- Visual Studio 2017使用Asp.Net Core构建Angular4应用程序
文章转载请著名出处:http://www.cnblogs.com/smallprogram 你需要了解的名词 1. NodeJS,这是一个基于Chrome V8 JavaScript引擎构建的Java ...
- asp.net mvc 简单实现一个账号只能在一个地方登录
原理: 假设用户在机器A登陆后, 这时用户再次在机器B登陆,会以当前会话的SessionID作为键,用户id作为值,插入dictionary集合中,集合再保存在application(保存在服务器 ...
- 【转载】MDK环境下让STM32用上FreeRTOS v8.1.2和FreeRTOS+Trace v2.6.0全过程
[转载]https://www.amobbs.com/thread-5601460-1-2.html?_dsign=6a59067b 本人选择使用FreeRTOS的最大原因就是想使用FreeRTO ...
- SpringBoot整合Swagger2
相信各位在公司写API文档数量应该不少,当然如果你还处在自己一个人开发前后台的年代,当我没说,如今为了前后台更好的对接,还是为了以后交接方便,都有要求写API文档. 手写Api文档的几个痛点: 文档需 ...