一、简述

  我们在写代码的过程经常遇到时间模块,如果我们以后需要根据时间去筛选信息的话,那用户会更大,所以今天就来讲讲时间的两大模块: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. iOS Scheme 跳转主流实现方案

    iOS Scheme跳转主流实现方案主要是路由跳转,目前iOS常用路由框架是JLRouter.HHRouter.MGJRouter. 但是这些路由库都各有不足,首先是JLRouter,用不到的功能繁多 ...

  2. 紫书 例题 9-14 UVa 1218 (树形dp)

    这道题有个初始值设成1e9, 然后这个值是要加很多次的,然后就会溢出变成负数, 然后就一直WA, 找这个bug找了一个小时--以后不能随便这样设那么大, 要考虑会不会加很多次然后溢出. 讲一下思路. ...

  3. 紫书 习题 10-19 UVa 10868 (物理动能定理)

    这道题看起来很长,而实际上就是考物理 可以用动能定理来算出末速度. 同时注意要特判绳子比桥还长的情况. #include<cstdio> #include<cmath> #de ...

  4. Mysql学习总结(5)——MySql常用函数大全讲解

    MySQL数据库中提供了很丰富的函数.MySQL函数包括数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数.加密函数.格式化函数等.通过这些函数,可以简化用户的操作.例如,字符串连接函数 ...

  5. RvmTranslator6.4 is released

    RvmTranslator6.4 is released eryar@163.com RvmTranslator can translate the RVM file exported by AVEV ...

  6. 9.9递归和动态规划(六)——打印n对括号的所有有效组合(即左右括号正确配对)

    /**  * 功能:打印n对括号的所有有效组合(即左右括号正确配对). */ 两种方法: 方法一: /** * 思路:在括号的最前面或者原有的每对括号中面插入一对括号. 至于其它任何位置.比方字符串的 ...

  7. cache -- clear( 缓存清除的方法)

    一:meta方法 <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV ...

  8. 8.ZOrder

    T3LayerZorder.h #pragma once #include "cocos2d.h" USING_NS_CC; class T3LayerZorder:public ...

  9. 利用日志文件恢复MYSQL数据库

    利用日志文件恢复MYSQL数据库 650) this.width=650;" onclick='window.open("http://blog.51cto.com/viewpic ...

  10. 解决xorm逆向mssql报datetime2不兼容的异常错误

    xorm作为golang开发者的一大利器,深受大家的喜爱,可是最近在逆向mssql的时候,报了这么一个错误: 最后找了半天发现xorm没有预置DateTime2类型,经过几番折腾,在xorm源码的en ...