datetime模块的常用总结
datetime模块
datetime模块提供了一些处理日期和时间的标准库。常用的有
- datetime
- timedelta
- timezone
构造一个datetime对象
datetime()
datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0);
比如:d = datetime.datetime(2012, 12, 22, 19, 29, 29, 99999)
datetime.today()
返回一个本地时间的datetime对象,tzinfo为None。
datetime.now(tz=None)
返回一个datetime对象,若tz=None,等于datetime.today().若指定tz,则返回带tzinfo的datetime对象.
datetime.utcnow()
返回一个tz为None,时间为格林威治时间的datetime对象。
datetime.fromtimestamp(timestamp,tz=None)
从timestamp中返回一个datetime对象;默认时区为None
datetime.strptinm(date_string,format)
从date_string中返回一个datetime对象
Return a datetime corresponding to date_string, parsed according to format.
对于tzinfo为None的datetime对象,在进行时间转换时,会以计算机系统设置的时区作为参考时区。
- datetime() 创建一个datetime对象
>>> import datetime
>>> d = datetime.datetime(2012,12,22,23,59,59,9999)
>>> d
datetime.datetime(2012, 12, 22, 23, 59, 59, 9999)
- datetime.today()创建一个datetime对象
>>> import datetime
>>> d = datetime.datetime.today()
>>> d
datetime.datetime(2018, 8, 17, 12, 5, 16, 535649)
- datetime.now()创建一个datetime对象
>>> import datetime
>>> d = datetime.datetime.now()
>>> d
datetime.datetime(2018, 8, 17, 12, 6, 0, 501210)
#创建一个带有tz的对象
>>> tzx = datetime.timezone(datetime.timedelta(hours=1))
>>> d = datetime.datetime.now(tz=tzx)
>>> d
datetime.datetime(2018, 8, 17, 5, 7, 46, 49701, tzinfo=datetime.timezone(datetime.timedelta(0, 3600)))
- datetime.utcnow()创建一个格林威治时间时区为None的datetime对象
>>> import datetime
>>> d = datetime.datetime.utcnow()
>>> d
datetime.datetime(2018, 8, 17, 4, 10, 28, 276769)
#创建一个带格林威治时间的datetime对象
>>> tzx = datetime.timezone(datetime.timedelta(hours=0))
>>> d=datetime.datetime.now(tz=tzx)
>>> d
datetime.datetime(2018, 8, 17, 4, 10, 41, 417900, tzinfo=datetime.timezone.utc)
- datetime.fromtimestamp()创建一个datetime对象
>>> import datetime
>>> ts=1
>>> d = datetime.datetime.fromtimestamp(ts)
>>> d
datetime.datetime(1970, 1, 1, 8, 0, 1)
>>> tzx = datetime.timezone(datetime.timedelta(hours=1))
>>> d = datetime.datetime.fromtimestamp(ts,tz=tzx)
>>> d
datetime.datetime(1970, 1, 1, 1, 0, 1, tzinfo=datetime.timezone(datetime.timedelta(0, 3600)))
- datetime.strptinme()创建一个datetime对象
>>> import datetime
>>> ds = '2018/8/17 14:00:00'
>>> d = datetime.datetime.strptime(ds,'%Y/%m/%d %H:%M:%S')
>>> d
datetime.datetime(2018, 8, 17, 14, 0)
>>> d = datetime.datetime.strptime(ds,'%Y/%m/%d %H:%M:%s')
datetime对象属性和方法(attribute and mothod)
- 对象的属性year, month, day, hour, minute,second, microsecond, tzinfo;返回对象的相关属性
- weekday()返回星期的天(周一0,周日6)
- isoweekday() 返回星期的天(周一1,周日7)
- date() 返回一个timedate.data对象
- time()返回一个timedate.time对象
- isocalendar() 返回一个三元组(年,周,周的天)
- timestamp()返回时间戳
- replace() 返回一个新的datetime对象,原对象不变
- strftime() 返回一个指定fromat的时间字符串对象
- ctime() 返回时间的字符串对象
几个示例:
>>> import datetime
>>> tzx = datetime.timezone(datetime.timedelta(hours=1))
>>> d = datetime.datetime.now(tz=tzx)
>>> d
datetime.datetime(2018, 8, 17, 7, 6, 6, 658467, tzinfo=datetime.timezone(datetime.timedelta(0, 3600)))
>>> d.day
17
>>> d.tzinfo
datetime.timezone(datetime.timedelta(0, 3600))
>>> d.time()
datetime.time(7, 6, 6, 658467)
>>> d.timestamp()
1534485966.658467
>>> d.ctime()
'Fri Aug 17 07:06:06 2018'
>>> d.strftime('%Y-%m-%d %H:%M:%S')
'2018-08-17 07:06:06'
>>> d.replace(hour=13)
datetime.datetime(2018, 8, 17, 13, 6, 6, 658467, tzinfo=datetime.timezone(datetime.timedelta(0, 3600)))
格式转换
对前面的方法进行整理
timestamp到datetime的相互转换
datetime.datetime.fromtimestamp()
d.timestamp()
date_string到datetime的相互转换
datetime.strptime(date_time,format)
d.strftime(format)
使用字符串format获取datetime的字符串形式
>>> d = datetime.datetime.fromtimestamp(1)
>>> d
datetime.datetime(1970, 1, 1, 8, 0, 1)
>>> d.timestamp()
1.0
>>> d = datetime.datetime.strptime('2018/1/1 12:00:00', '%Y/%m/%d %H:%M:%S')
>>> d.strftime('%x %X')
'01/01/18 12:00:00'
>>> d = datetime.datetime.strptime('2018/1/1 12:00:00', '%Y/%m/%d %H:%M:%S')
>>> '{0:%H}:{0:%M}:{0:%S}'.format(d)
'12:00:00'
time的常用格式
| 格式 | 说明 |
|---|---|
| %Y | 年份(2018) |
| %y | 年份(18) |
| %m | 月 |
| %d | 日 |
| %H | 小时 |
| %M | 分钟 |
| %S | 秒 |
| %X | 时:分:秒 |
datetime的加减
datetime的加减,需要另外一个类:timedelta
timedelta对象的获取
- 两个datetime相减,得到timelta对象
- 使用timelte函数定义一个timedelta对象
>>> import datetime
>>> d1 = datetime.datetime.now()
>>> d2 = datetime.datetime.now()
>>> dd = d2 - d1
>>> dd
datetime.timedelta(0, 30, 702676)
>>> dd = datetime.timedelta(hours=2)
>>> dd
datetime.timedelta(0, 7200)
>>>
timedelta的作用
- 时间的加减
- 时间差的获取
- 时区
时间的加减
datetime2 = datetime1 + timedelta
datetime1 = datetime2 - timedelta
timedelta = datetime2 - datetime1
时间差的获取
timedelta.seconds() 获取秒数
timedelta.totalseconds() 获取时间差,精确到微妙
创建时区
datetime.timezone(datetime.timedelta(hours=8))
datetime模块的常用总结的更多相关文章
- 常用模块 - datetime模块
一.简介 datetime是Python处理日期和时间的标准库. 1.datetime模块中常用的类: 类名 功能说明 date 日期对象,常用的属性有year, month, day time 时间 ...
- Python的time和datetime模块
Python的time和datetime模块 time 常用的有time.time()和time.sleep()函数. import time print(time.time()) 149930555 ...
- [ Python入门教程 ] Python中日期时间datetime模块使用实例
Python中datetime模块提供强大易用的日期处理功能,用于记录程序操作或修改时间.时间计算.日志时间显示等功能.datatime模块重新封装了time模块,提供的类包括date.time.da ...
- python-Day5-深入正则表达式--冒泡排序-时间复杂度 --常用模块学习:自定义模块--random模块:随机验证码--time & datetime模块
正则表达式 语法: mport re #导入模块名 p = re.compile("^[0-9]") #生成要匹配的正则对象 , ^代表从开头匹配,[0 ...
- Python全栈之路----常用模块----datetime模块详解
相比于time模块,datetime模块的接口则更直观,更容易调用. datetime模块定义了下面这几个类: datetime.date:表示日期的类,常用的属性有year,month,day: d ...
- python常用模块之time&datetime模块
python常用模块之time&datetime模块 在平常的代码中,我们经常要与时间打交道.在python中,与时间处理有关的模块就包括:time和datetime,下面分别来介绍: 在开始 ...
- python进阶06 常用问题库(2)datetime模块 base64
python进阶06 常用问题库(2)datetime模块 base64 一.datetime模块(时间) 1.datetime.time() t=datetime.time(20,43,30,1) ...
- python常用模块:项目目录规范、定制程序入口、自定义模块、引用变量、time和datetime模块
今天讲课内容有两大部分: 一.文件目录规范二.定制程序入口三.使用标准目录后四.常规函数time.datetime 一.标准目录规范 之前用过的案例atm机+购物商城代码过长,在学习了模块和包以后,我 ...
- python中datetime模块
Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块我在之前的文章已经有所介绍,它提供 的接口与C标准库time.h基本一致.相比于time模块 ...
随机推荐
- httprunner - 源码解析
这里只是做一个大概的解析,还有很多细节部分没有太过于关注 我们从cli.py开始进行解析 1.argparse.ArgumentParser 接受命令行的各种参数 [ argparse.Argumen ...
- 面向对象编程 OOP
OOP,Object Oriented Programming,原来就是面向对象的编程. 面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物. OOD,Object Or ...
- myeclipse显示db-brower
myeclipse显示db-brower 这东西怎么调出来? windows->show view->other->db borwser
- vs2019编译opencv
序 微软家的宇宙第一ide:visual studio已经更新到了2019版,芒果也更新尝鲜了一遍,体验还不错,建议更新尝尝鲜.芒果顺便使用vs2019编译了一遍opencv,编译过程也非常顺利,以下 ...
- Thinkphp6框架学习:($this->error()undefined)Call to undefined method app\index\controller\Admin::error()
最近在使用Thinkphp6框架的时候,想做一个初始化来验证登录状态. 当没有Session::get(‘adminUid’)的时候就应该跳转到admin\adminLogin的方法中,和以前Tp5的 ...
- 纯H5 AJAX文件上传加进度条功能
上传代码js部分 //包上传 $('.up_apk').change(function () { var obj = $(this); var form_data = new FormData(); ...
- 牛客 2C 圈圈
题面: shy有一个队列a[1], a[2],…,a[n].现在我们不停地把头上的元素放到尾巴上.在这过程中我们会得到n个不同的队列,每个队列都是a[k],a[k+1],…,a[n],a[1],…,a ...
- C++ 标准库字符串类使用
标准库中的字符串类 C++语言直接支持C语言所有概念. C++中没有原生的字符串类型. 由于C++中没有原生的字符串类型,C++标准库提供了string类型. 1.string 直接支持字符串链接 2 ...
- spring + dubbo 学习
新启动的项目中可能会使用到dubbo,因为之前并没有接触过,所以先小试一下 示例运行环境准备:OS X 10.10.5 + java version "1.8.0_40" zook ...
- 比特(bit)和字节(Byte)
比特(bit)和字节(Byte) 基础的内容就不说了,这里是一个小的学习笔记 比特和字节的写法差异与应用场景 标准的写法中,正如标题中写的那样,是通过大小写来区分比特和字节的:比特的b应该是小写,而字 ...