Python中模块之time&datetime的功能介绍
time&datetime的功能介绍
1. time模块
1. 时间的分类
1. 时间戳:以秒为单位的整数
2. 时间字符格式化:常见的年月日时分秒
3. 时间元祖格式:9大元素,每个元素对应时间的年与日时分秒周天夏令时
2. time中的变量
timezone
返回当前时区时间与UTC时区时间相差的时间戳,没有夏令时的情况下。
方法:time.timezone
返回值:int
例如:print(time.timezone)
>>> -28800
#由于中国属于东八区,比UTC早8个小时,拿UTC-中国时区就等于-8,因此上述结果是负值。
altzone
返回当前时区时间与UTC时区时间相差的时间戳,在有夏令时的情况下。
方法:time.altzone
返回值:int
例如:print(time.altzone)
>>> -32400
#因为有夏令时的情况下,时间提前一个小时,因此现在的8点,实际上是9点,因此上述的结果是相差9个小时。
daylight
判断当前时区是否实行夏令时,有实行则返回1,否则返回0
方法:time.daylight
返回值:int(0 or 1)
例如:print(time.daylight)
>>> 0
#由于中国未实行夏令时,因此返回值为0.
tzname
把标准时区UTC和实行夏令时的时区作为元祖的两个元素返回
方法:time.tzname
返回值:tuple
3. time中的方法
time
以浮点类型返回当前时间的时间戳
方法:time.time()
返回值:float
例如:print(time.time())
>>> 1506229765.1344674
#拿当前的时间减去1970年1月1日0时0分0秒得到的秒数。
clock
以浮点类型返回CPU启动的时间戳
方法:time.clock()
返回值:float
例如:print(time.clock())
>>> 9.770343197960344e-07
#由于CPU启动时间小于一秒,因此上述返回值为负的科学计数法。
sleep
沉睡指定秒数
方法:time.sleep(num)
返回值:None
例如:print(time.sleep(1))
>>> None
#该方法为执行过程方法,因此没有返回结果,程序等待一秒结束。
gmtime
把时间戳转换为时间元祖格式,以UTC时区进行计算
方法:time.gmtime(seconds)
返回值:time.struct_time
例如:print(time.gmtime(666666))
>>> time.struct_time(tm_year=1970, tm_mon=1, tm_mday=8, tm_hour=17, tm_min=11, tm_sec=6, tm_wday=3, tm_yday=8, tm_isdst=0)
#返回的结果是以1970年1月1日算起始点,加上上述的指定秒数得出的时间元祖格式。
localtime
把本地时间戳转换为时间元祖格式,以本地时区进行计算
方法:time.localtime([seconds])
返回值:time.struct_time
例如:print(time.localtime(666666))
>>> time.struct_time(tm_year=1970, tm_mon=1, tm_mday=9, tm_hour=1, tm_min=11, tm_sec=6, tm_wday=4, tm_yday=9, tm_isdst=0)
#可以指定时间戳,默认本地当前时间。
asctime
把时间元祖格式转换为时间字符串格式
方法:time.asctime([time.struct_time])
返回值:str
例如:print(time.asctime())
>>> Sun Sep 24 13:36:00 2017
#传入的参数一定需要是时间元祖格式,默认不指定时,为当前本地时间。
ctime
把时间戳格式转换为时间字符串格式
方法:time.ctime([num])
返回值:str
例如:print(time.ctime(666666))
>>> Fri Jan 9 01:11:06 1970
#传入的参数需要是时间戳即float or int类型,默认不指定时,为当前本地时间。
mktime
把时间元祖格式转换为时间戳格式
方法:time.mktime(tuple)
返回值:float
例如:time.mktime(time.localtime())
>>> 1506232321.0
#实际中一般很少书写时间元祖格式,该方法在传入时不能直接传入时间元祖格式,但可以传入元祖即时间元祖格式去掉关键字的元祖。
strptime
把时间字符串按照对应的格式化进行转换为时间元祖格式
方法:time.strptime(str,format)
返回值:time.struct_time
例如:print(time.strptime('2017-9-24','%Y-%m-%d'))
>>> time.struct_time(tm_year=2017, tm_mon=9, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=267, tm_isdst=-1)
#该方法与strptime方法的作用相反。
strftime
把时间元祖格式按照相应的格式化转换为时间字符串格式
方法:time.strftime(format,[tuple])
返回值:str
例如:print(time.strftime('%Y-%m-%d'))
>>> 2017-09-24
#需要指定时间元祖,如果不指定时,默认以当期本地时间进行计算。
时间格式对应表如下:
标识符 标识符代表的意思
%Y 表示年份
%m 表示月份,取值范围[01,12]
%d 表示日,取值范围[01,31]
%H 表示小时,取值范围[00,23]
%M 表示分钟,取值范围[00,59]
%S 表示秒,取值范围[00,61]
%z 表示时区,取值范围[-12,+12]
%a 用英文表示周几,简称,取值范围[Sun,Sat]
%b 用英文表示月份,简称,取值范围[Jan,Dec]
%A 用英文表示周几,全称,取值范围[Sunday,Saturday]
%B 用英文表示月份,全称,取值范围[January,December]
%c 直接表示时间格式等于%a %b %d %H:%M:%S %Y的总和
%I 表示当前时间是12小时制还是24小时制,取值范围[01,02]
%p 表示当前时间是上午还是下午,该表示方法只有24小时制才可以用。
注:从上述对应表中可以看出,用于表示12小时制中的小时'h'并不存在,因此在python中一般只用于处理24小时制。
2. datetime模块
该模块中主要有以下几个类:
date
理想化的日期对象,有year,month,day三个属性
time
理想化的时间对象,不考虑闰秒即(秒取值范围为[00,59]),有hour,minute,second,microsecond,tzinfo五个属性
datetime
datetime.date和datetime.time的组合
timedelta
表示两个datetime.date,datetime.time或datetime.datetime直接的差
tzinfo
表示时区信息
2. datetime.date
fromtimestamp
把时间戳转换为字符串格式的日期,去除时间等其他信息,只保留年月日
方法:datetime.date.fromtimestamp(num)
返回值:datetime.date
例如:print(datetime.date.fromtimestamp(233333333))
>>> 1977-05-24
#只保留年月日
3. datetime.datetime
astimezone
转换为新时区的当时时间
combine
把日期和时间合并
例如:print(datetime.datetime.combine(datetime.date(207,9,25),datetime.time(16,30)))
>>> datetime.datetime(207, 9, 25, 16, 30)
now
获取当天日期
方法:datetime.datetime.now()
返回值:datetime.datetime
例如:print(datetime.datetime.now())
>>> datetime.datetime(2017, 9, 24, 15, 23, 44, 389430)
#获取当天的时间
配合timedelta类一起使用:
获取当天后第N天的时间
方法:datetime.datetime.now() + datetime.timedelta(days=num)
返回值:datetime.datetime
例如:print(datetime.datetime.now() + datetime.timedelta(5))
>>> 2017-09-29 15:49:01.371196
#获取当天后第五天的时间,当然也可以获取当天前第N天的时间,传入的数字为负整数即可。对应参数days默认可以不填写。
获取当天N个小时之前的时间
方法:datetime.datetime.now() + datetime.timedelta(hours=num)
返回值:datetime.datetime
例如:print(datetime.datetime.now() + datetime.timedelta(hours=-5))
>>> 2017-09-24 10:48:32.525547
#获取5个小时之前当天的时间,以此类推,years,months,minutes,seconds,mircroseconds等的使用。
当然修改上述日期的方法也可以不使用timedelta类,可以使用datetime.datetime.now().replace方法,具体如下:
方法:datetime.datetime.now().replace(year,month...)
返回值:datetime.datetime
例如:print(datetime.datetime.now().replace(year=2018))
>>> 2018-09-24 15:57:33.762503
#需要注意的是,该方法使用的参数与timedelta类使用的参数是不一样的,一个加's',一个没有加's'。
4. timedelta
该类的对象:
- days(天数)
- microseconds(微秒数)
- seconds(秒数)
- hours(小时)
- minutes(分钟数)
该类一般配合datetime类一起使用,因此详情请见上述类的介绍。
Python中模块之time&datetime的功能介绍的更多相关文章
- Python中模块json与pickle的功能介绍
json & pickle & shelve 1. json的序列化与反序列化 json的使用需要导入该模块,一般使用import json即可. json的序列化 方法1:json. ...
- Python中模块之os的功能介绍
Python中模块之os的功能介绍 1. os的变量 path 模块路径 方法:os.path 返回值:module 例如:print(os.path) >>> <module ...
- 查看python中模块的所有方法
查看python中模块的所有方法 安装的python模块,现将查看方法总结如下 一.CMD命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交 ...
- python常用模块之time&datetime模块
python常用模块之time&datetime模块 在平常的代码中,我们经常要与时间打交道.在python中,与时间处理有关的模块就包括:time和datetime,下面分别来介绍: 在开始 ...
- Python常用模块sys,os,time,random功能与用法,新手备学。
这篇文章主要介绍了Python常用模块sys,os,time,random功能与用法,结合实例形式分析了Python模块sys,os,time,random功能.原理.相关模块函数.使用技巧与操作注意 ...
- [python]关于在python中模块导入问题追加总结
[背景] 最近在写程序时,我使用的eclipse编辑器运行都没有问题,然后部署到自动化环境上却偏偏报找不到相应模块问题,现在对该问题在之前的贴子上追加总结 原帖子:[python]关于python中模 ...
- [笔记]Python中模块互相调用的例子
python中模块互相调用容易出错,经常是在本地路径下工作正常,切换到其他路径来调用,就各种模块找不到了. 解决方法是通过__file__定位当前文件的真实路径,再通过sys.path.append( ...
- 【转】Python中的赋值、浅拷贝、深拷贝介绍
这篇文章主要介绍了Python中的赋值.浅拷贝.深拷贝介绍,Python中也分为简单赋值.浅拷贝.深拷贝这几种"拷贝"方式,需要的朋友可以参考下 和很多语言一样,Python中 ...
- python学习第九讲,python中的数据类型,字符串的使用与介绍
目录 python学习第九讲,python中的数据类型,字符串的使用与介绍 一丶字符串 1.字符串的定义 2.字符串的常见操作 3.字符串操作 len count index操作 4.判断空白字符,判 ...
随机推荐
- ViurtualBox配置虚拟机Linux的网络环境
之前可以使用VMware配置成功,让虚拟机和本地通信,虚拟机可以访问外网,但是VMware体积太大了,最后终于把virtualBox也配置成功,也使得两者兼备 环境:本地windows7 64位专业版 ...
- Java.nio-随机读写汉字
笔者最近在用多线程来计算中文文本的标点符号数目,遇到了以下问题: 在Windows下,文本中汉字通常采用Unicode编码,这就导致需要随机(RandomAccessFile)读取文本时,产生乱码现象 ...
- Spring Security入门(3-3)Spring Security 手工配置并注入 authenticationProvider 和 异常信息传递
特别注意的是 这样就能保证抛出UsernameNotFoundException时,前台显示出错信息: 另外,ps:
- Python 自动化 第一周
1.Python简介 1.1.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时 ...
- windows计划任务
前段时间写了一个小工具,实现两个数据库的数据同步. 需求:要求每天的某个时间自动同步数据 功能写好之后,发现了windows一个自带的功能不错,可以实现我的需要,不用写定时器触发了 控制面板-> ...
- pandas笔记
axis = 1表示按列的方向遍历 axis = 0表示按行的方向遍历 Usually axis=0 is said to be "column-wise" (and axis=1 ...
- html标记语言 --框架
html标记语言 --框架 六.框架 1.什么是框架 框架将浏览器划分成不同的部分,每一部分加载不同的网页 实现同一浏览器窗口中加载多个页面的效果. 语法格式<frameset>..... ...
- 一 Unicode和UTF-8的异同
下面就是我的笔记,主要用来整理自己的思路.但是,我尽量试图写得通俗易懂,希望能对其他朋友有用.毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识.1. ASCII码我们 ...
- CentOS 6.8下二级域名及目录的绑定
二级域名对应目录的绑定: 第一步: 开启mod_rewrite模块,默认是开启的,这里可以查下是否开启 终端输入:vim /etc/httpd/conf/httpd.conf 回车 查看188行:L ...
- TCP/IP学习笔记(二):TCP连接的建立与终止
TCP连接的三次握手: (1)请求短发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号ISN(1415535521),报文段中SYN=1:TCP规定:SYN报文段不能携带数据,但是要消耗一个 ...