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模块 ...
随机推荐
- Largest Number At Least Twice of Others
In a given integer array nums, there is always exactly one largest element. Find whether the largest ...
- 【2019V2全新发布】ComponentOne .NET开发控件集,新增.NET Core数据引擎
ComponentOne .NET开发控件集 2019V2正式发布,除持续完善并加入全新的.NET开发控件外,还针对产品架构稳定性.易用性.与.NET Core平台深度集成.已有控件功能增强等多个方面 ...
- [BZOJ2594] [WC2006]水管局长(Kruskal+LCT)
[BZOJ2594] [WC2006]水管局长(Kruskal+LCT) 题面 SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可 ...
- Linux服务器Java进程突然消失排查办法
出处:JAVA进程突然消失的原因? 问题描述 在实际生产环境下,如果我们遇见Java进程突然消失,该如何去排查问题? 思路 可能有几种原因: ①.Java应用程序的问题:发生OOM导致进程Crash ...
- 给网页中的button加动画效果
网页中的很多事件交互都是通过点击页面中的按钮来实现的,给按钮加一点动画效果也会让网页看起来生动一些,以下就是一个简单的例子: 此按钮的动画主要是通过css的transform动画,伪元素,伪类来实现: ...
- 中文转拼音,pinyin4j实用示例
Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换.拼音输出格式可以定制. Support Chinese character (both Simplified and Trandi ...
- 禁止缩放meta标签
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale= ...
- console的各种用法
console的各种用法 1.输出信息 console.log('消息内容!'); //输出普通信息 console.info('消息内容!'); //输出提示信息 (在ie上有区分) console ...
- Java-日期格式转换
1.日期-String类型转Date类型 // String转Date str = "2007-1-18"; DateFormat format1 = new SimpleDate ...
- laravel-admin 添加图表 Chartjs
github地址:https://github.com/laravel-admin-extensions/chartjs Installation composer require laravel-a ...