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模块 ...
随机推荐
- 牛客小白月赛12-C(欧拉筛解积性方程)
题目链接:https://ac.nowcoder.com/acm/contest/392/C 题意:给定n,求: 思路:令res[i]=iN (%MOD),因为xn是一个积性函数,即(x*y)n=x ...
- 微信多开脚本(Windows,Mac)
微信多开 以下内容仅用于学习使用.严禁用于非法用途,违者自负. Windows 多开 Windows 版本的微信在一些比较新的版本好像限制了多开,我们这里提供一个版本(也是官方的).https://p ...
- 并发编程 深入分析Volatile的实现原理
在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”.可见性的意思是当一个线 ...
- # 匈牙利算法(二分图最大匹配)- hdu 过山车
匈牙利算法(二分图最大匹配)- hdu 过山车 Hdu 2063 二分图:图中的点可以分成两组U,V,所有边都是连接U,V中的顶点.等价定义是:含奇数条边的图. 匹配:一个匹配是一个边的集合,其中任意 ...
- CSP 最大的矩形(201312-3)
问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi.这n个矩形构成了一个直方图.例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3 ...
- 用python操作mysql数据库
数据库的安装和连接 PyMySQL的安装 pip install PyMySQL python连接数据库 import pymysql db = pymysql.connect("数据库ip ...
- HTML5自学
1.1 标题文本 在HTML5中,文本的结构除了以行和段落出现之外,还可以作为标题存在,通常一篇文档最基本的结构就是由不同级别的标题和正文组成的. 例如1:(中国门户网站) https://www ...
- 实现远程线程DLL注入
### 32位:远程线程注入 远程线程注入是最常用的一种注入技术,该技术利用的核心API是 `CreateRemoteThread()` 这个API可以运行远程线程,其次通过创建的线程调用 `Load ...
- Peter and Snow Blower CodeForces - 613A (点到线段距离)
大意: 给定多边形, 给定点$P$, 求一个以$P$为圆心的最小的圆环包含整个多边形. #include <iostream> #include <cmath> #define ...
- wex5 baasData规则和绑定 学习
1 在baasData新建一个计算列 2 点击编辑规则,左边选择该计算列, 右边点击计算后面的设置 3 写规则的逻辑 好像不能用if 只能用三目运算符 4 绑定样式和文本的时候 这么用: