一、简述

  我们在写代码的过程经常遇到时间模块,如果我们以后需要根据时间去筛选信息的话,那用户会更大,所以今天就来讲讲时间的两大模块:time & datetime

二、time模块

1、time.process_time()

功能:测量处理器的运算时间,但是不包括sleep时间

>>> import time
>>> time.process_time()
0.171875
>>>

  

2、time.altzone()

功能:返回与utc的时间的时间差,以秒计算

>>> import time
>>> time.altzone
-32400
>>> time.altzone / 3600
-9.0
>>>

  

3、time.asctime()

功能:返回时间格式:'Thu Mar 30 16:47:39 2017'(星期 月 日  时间   年)

>>> import time
>>> time.asctime()
'Wed Mar 27 23:41:28 2019'
>>>

  

4、time.localtime()

功能:返回本地时间的struct _time的格式的对象,也可以把时间戳转换成成struct _time的格式的对象

>>> import time
>>> t = time.localtime()
>>> t
time.struct_time(tm_year=2019, tm_mon=3, tm_mday=27, tm_hour=23, tm_min=42, tm_sec=20, tm_wday=2, tm_yday=86, tm_isdst=0)
>>> t.tm_hour
23
>>>

  

5、time.time()

功能:返回当前时间的时间戳(1970年纪元后经过的浮点秒数)

>>> import time
>>> time.time()
1553701394.1449068
>>> time.localtime(time.time())
time.struct_time(tm_year=2019, tm_mon=3, tm_mday=27, tm_hour=23, tm_min=43, tm_sec=22, tm_wday=2, tm_yday=86, tm_isdst=0)
# 给当前时间加上3个小时,注意了,localtime中只能介绍秒级别的,所以是3600*3表示3个小时
>>> time.localtime(time.time() + 3600*3)
time.struct_time(tm_year=2019, tm_mon=3, tm_mday=28, tm_hour=2, tm_min=43, tm_sec=39, tm_wday=3, tm_yday=87, tm_isdst=0)
#跟asctime结合起来用 生成当前时间格式
>>> time.asctime( time.localtime( time.time() ) )
'Wed Mar 27 23:43:47 2019'
>>>

  注:为啥是1970年呢?因为1970年1月1日被当做unix操作系统的诞生元年。

6.time.gmtime()

功能:返回当前utc时间(伦敦时间)

>>> import time
>>> time.gmtime() # 返回utc的时间struct time 格式
time.struct_time(tm_year=2019, tm_mon=3, tm_mday=27, tm_hour=15, tm_min=45, tm_sec=27, tm_wday=2, tm_yday=86, tm_isdst=0)
>>> time.asctime(time.gmtime()) # 伦敦时间
'Wed Mar 27 15:45:36 2019'
>>> time.asctime(time.localtime()) # 北京时间,两者正好相差8个小时
'Wed Mar 27 23:45:43 2019'
>>>

  

7、time.strptime()

功能:把时间格式的字符串转成struct_time格式的时间对象

>>> import time
>>> time.strptime("2019-03-27 23:50","%Y-%m-%d %H:%M")
time.struct_time(tm_year=2019, tm_mon=3, tm_mday=27, tm_hour=23, tm_min=50, tm_sec=0, tm_wday=2, tm_yday=86, tm_isdst=-1)
>>>

  

8、time.mktime()

功能:把struct_time时间对象转成时间戳

>>> import time
>>> t = time.strptime("2019-03-27 23:50","%Y-%m-%d %H:%M")
>>> t2_stamp = time.mktime(t)
>>> t2_stamp
1553701800.0
>>>

  

9、time.strftime()

功能:struct_time时间对象转换成时间字符串

>>> import time
>>> t = time.strptime("2019-03-27 23:50","%Y-%m-%d %H:%M")
>>> m = time.strftime("%Y-%m-%d-%H-%M.log",t)
>>> m
'2019-03-27-23-50.log'
>>> m = time.strftime("%Y-%m-%d-%H-%M.log")
>>> m
'2019-03-27-23-49.log'
>>>

  

三、时间格式转换

1、转换表格

2、时间格式转换关系图

四、datetime模块

1、datetime.datetime.now()

功能:返回当前时间,格式如:2019-03-27 23:51:46.470982

>>> import datetime
>>> print(datetime.datetime.now())
2019-03-27 23:51:46.470982
>>>

  

2、datetime.date.fromtimestamp()

功能:时间戳转换为日期格式

>>> import datetime, time
>>> t = datetime.date.fromtimestamp(time.time())
>>> print(t)
2019-03-27
>>>

  

3、datetime.timedelta()

功能:对某个时间的加减

import datetime
t1 = datetime.datetime.now() + datetime.timedelta(days=3) # 当前时间加3天
print(t1) # 2019-03-30 23:54:12.276922
t2 = datetime.datetime.now() - datetime.timedelta(days=3) # 当前时间减3天
print(t2) # 2019-03-24 23:55:11.134536
t3 = datetime.datetime.now() + datetime.timedelta(days=-3) # 当前时间减3天
print(t3) # 2019-03-24 23:56:05.031826
t4 = datetime.datetime.now() + datetime.timedelta(hours=3) # 当前时间加3个小时
print(t4) # 2019-03-28 02:56:46.670753
t5 = datetime.datetime.now() + datetime.timedelta(minutes=30) # 当前时间加30分钟
print(t5) # 2019-03-28 00:27:18.182722

  

4、时间替换

>>> import datetime
>>> c_time = datetime.datetime.now()
>>> print(c_time)
2019-03-27 23:59:51.528180
>>> update_c_time = c_time.replace(minute=3,hour=2) # 时间替换
>>> print(update_c_time)
2019-03-27 02:03:51.528180
>>>

  

time and datetime的更多相关文章

  1. C# DateTime与时间戳转换

    C# DateTime与时间戳的相互转换,包括JavaScript时间戳和Unix的时间戳. 1. 什么是时间戳 首先要清楚JavaScript与Unix的时间戳的区别: JavaScript时间戳: ...

  2. C# DateTime日期格式化

    在C#中DateTime是一个包含日期.时间的类型,此类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换为多种字符串格式. 目录 1. 分类 2. 制式类型 3. ...

  3. 在面试中忽然发现DateTime的一些...

    今天说说我面试中碰到的一个小问题,在我问起DateTime为什么无法赋值NULL值,一般第一反应都认为它是值类型,不是引用类型,但随后我查阅了度娘自我学习到它是结构类型,那么随之而然就无法赋值NULL ...

  4. LINQ to SQL语句(14)之Null语义和DateTime

    Null语义 说明:下面第一个例子说明查询ReportsToEmployee为null的雇员.第二个例子使用Nullable<T>.HasValue查询雇员,其结果与第一个例子相同.在第三 ...

  5. .NET DateTime类型变量作为参数时设置默认值

    一个小的 Tips. .NET 中函数参数的默认值需要是编译时常量.如果参数是引用类型,可以设置Null,如果是值类型,可以设置相应的编译时常量,如整型可以用整数,但对于DateTime(结构体,值类 ...

  6. BCS datetime 时间区间问题

    BCS 整合sql表时发现以下问题: datetime字段在列表中带了时区,比如插入12-6号的数据,在sql中显示的是12-5 date类型字段无法正确识别,插入成功但报错 LobSystem (外 ...

  7. C#中DateTime.Ticks属性及Unix时间戳转换

    1.相关概念 DateTime.Ticks:表示0001 年 1 月 1 日午夜 12:00:00 以来所经历的 100 纳秒数,即Ticks的属性为100纳秒(1Ticks = 0.0001毫秒). ...

  8. WPF 自定义DateControl DateTime控件

    自定义日期控件,月份选择.如下是日期的一些效果图. 具体的样式.颜色可以根据下面的代码,自己调节即可    1.日期控件的界面 <UserControl x:Class="WpfApp ...

  9. JavaScript 解析 Django Python 生成的 datetime 数据 时区问题解决

    JavaScript 解析 Django/Python 生成的 datetime 数据 当Web后台使用Django时,后台生成的时间数据类型就是Python类型的. 项目需要将几个时间存储到数据库中 ...

  10. python标准模块(time、datetime及hashlib模块)

    一.time,datetime模块 时间相关的操作 import time time.sleep(5) # ==> 停顿多少秒 print(time.time()) # ==> 返回时间戳 ...

随机推荐

  1. 开源系统源码分析(filter.class.php)

    <?php class baseValidater { //最大参数个数 const MAX_ARGS=3; public static function checkBool($var) { r ...

  2. Conventions and patterns for multi-platform development

    For Developers‎ > ‎Design Documents‎ > ‎ Conventions and patterns for multi-platform developme ...

  3. Yeslab 华为安全HCIE七门之-防火墙基础(12篇)

    Yeslab 华为安全HCIE七门之-防火墙基础(12篇) Yeslab 全套华为安全HCIE七门之第二门防火墙基础(12篇),第一门课论坛很早就有了,可自行下载,后面的陆续分享给大家. 华为安全HC ...

  4. centos yum 安装php7.2

    yum -y remove php* rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm r ...

  5. CCF模拟 无线网络

    无线网络 时间限制: 1.0s 内存限制: 256.0MB   问题描述 目前在一个很大的平面房间里有 n 个无线路由器,每个无线路由器都固定在某个点上.任何两个无线路由器只要距离不超过 r 就能互相 ...

  6. PatentTips - Virtual translation lookaside buffer

    BACKGROUND OF THE INVENTION A conventional virtual-machine monitor (VM monitor) typically runs on a ...

  7. visualvm监控tomcat

    https://my.oschina.net/weidedong/blog/787203

  8. HTTP请求和响应1:概述

    HTTP的报文分为请求报文和响应报文,打开一个web页面后,浏览器将发起一个HTTP请求报文.HTTPserver收到请求后将回送一个响应报文. 报文的基本结构 HTTP的请求和响应报文都由三个部分组 ...

  9. iOS8开发~Swift(五)Swift与OC混编

    一.概要 首先看<The Swift Programming Language>中提到"Swift's compatibility with Objective-C lets y ...

  10. 慢慢人生路,学点Jakarta基础-深入剖析Java的接口和抽象类

    在java面向对象编程的,抽象类和接口始终存在有疑问的地方,因为两者太多相似有太多不同,在刚开始学习的时候经常弄的不对,使用情景搞混,今天来总结之前学习Java中接口和抽象类的问题. 抽象类 了解:只 ...