time and datetime
一、简述
我们在写代码的过程经常遇到时间模块,如果我们以后需要根据时间去筛选信息的话,那用户会更大,所以今天就来讲讲时间的两大模块: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的更多相关文章
- C# DateTime与时间戳转换
C# DateTime与时间戳的相互转换,包括JavaScript时间戳和Unix的时间戳. 1. 什么是时间戳 首先要清楚JavaScript与Unix的时间戳的区别: JavaScript时间戳: ...
- C# DateTime日期格式化
在C#中DateTime是一个包含日期.时间的类型,此类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换为多种字符串格式. 目录 1. 分类 2. 制式类型 3. ...
- 在面试中忽然发现DateTime的一些...
今天说说我面试中碰到的一个小问题,在我问起DateTime为什么无法赋值NULL值,一般第一反应都认为它是值类型,不是引用类型,但随后我查阅了度娘自我学习到它是结构类型,那么随之而然就无法赋值NULL ...
- LINQ to SQL语句(14)之Null语义和DateTime
Null语义 说明:下面第一个例子说明查询ReportsToEmployee为null的雇员.第二个例子使用Nullable<T>.HasValue查询雇员,其结果与第一个例子相同.在第三 ...
- .NET DateTime类型变量作为参数时设置默认值
一个小的 Tips. .NET 中函数参数的默认值需要是编译时常量.如果参数是引用类型,可以设置Null,如果是值类型,可以设置相应的编译时常量,如整型可以用整数,但对于DateTime(结构体,值类 ...
- BCS datetime 时间区间问题
BCS 整合sql表时发现以下问题: datetime字段在列表中带了时区,比如插入12-6号的数据,在sql中显示的是12-5 date类型字段无法正确识别,插入成功但报错 LobSystem (外 ...
- C#中DateTime.Ticks属性及Unix时间戳转换
1.相关概念 DateTime.Ticks:表示0001 年 1 月 1 日午夜 12:00:00 以来所经历的 100 纳秒数,即Ticks的属性为100纳秒(1Ticks = 0.0001毫秒). ...
- WPF 自定义DateControl DateTime控件
自定义日期控件,月份选择.如下是日期的一些效果图. 具体的样式.颜色可以根据下面的代码,自己调节即可 1.日期控件的界面 <UserControl x:Class="WpfApp ...
- JavaScript 解析 Django Python 生成的 datetime 数据 时区问题解决
JavaScript 解析 Django/Python 生成的 datetime 数据 当Web后台使用Django时,后台生成的时间数据类型就是Python类型的. 项目需要将几个时间存储到数据库中 ...
- python标准模块(time、datetime及hashlib模块)
一.time,datetime模块 时间相关的操作 import time time.sleep(5) # ==> 停顿多少秒 print(time.time()) # ==> 返回时间戳 ...
随机推荐
- Java经典算法案例
笔试中的编程题3 JAVA经典算法40例[程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? ...
- 参考《利用Python进行数据分析(第二版)》高清中文PDF+高清英文PDF+源代码
第2版针对Python 3.6进行全面修订和更新,涵盖新版的pandas.NumPy.IPython和Jupyter,并增加大量实际案例,可以帮助高效解决一系列数据分析问题. 第2版中的主要更新了Py ...
- python note #2
This passage will talk about some small but pretty important knowledge points, including using metho ...
- 使用UltraEdit配置多行注释和取消多行注释
UltraEdit功能强大,使用方便,成为软件开发者必备的文档和代码编辑工具.有很多人也直接用它来写代码,如C/Java,脚本如:Perl/Tcl/JavaScript 等. 如果用来写代码,有一个不 ...
- Visual Studio Set Project Environment Variables
Visual Studio Set Project Environment Variables eryar@163.com In Visual Studio you can specify chang ...
- 【IOS学习】1.第一个IOS程序
1.执行原理 a.首先执行main函数 调用UIApplicationMain方法 return UIApplicationMain(argc, argv, nil, NSStringFromClas ...
- javafx DropShadow
public class EffectTest extends Application { DropShadow shadow = new DropShadow(); public static vo ...
- Java: 数据类型
核心:对事物的某种规范 前提: 1.JAVA:JAVA程序的运行是以堆栈的操作来完成的 堆栈以帧为单位保存线程的状态. JVM对堆栈只进行两种操作:以帧为单位的压栈和出栈操作. 理解 ...
- deep-in-es6(一)
一 迭代器和for-of循环 以前的一些遍历数组: function c(n) { console.log(n); } 方法一: for(let i = 0;i < arr.length;i++ ...
- marquee
marquee: 页面的自动滚动效果,可由javascript来实现,但是今天无意中发现了一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需 ...