一、简述

  我们在写代码的过程经常遇到时间模块,如果我们以后需要根据时间去筛选信息的话,那用户会更大,所以今天就来讲讲时间的两大模块: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. Chromium Graphics: HW Video Acceleration in Chrom{e,ium}{,OS}

    HW Video Acceleration in Chrom{e,ium}{,OS} Ami Fischman <fischman@chromium.org> Status as of 2 ...

  2. Linux 桌面的 Dock 类程序

    1.Cairo-Dock是一个Dock类软件,它支持OpenGL.提供动画及视觉效果的插件.新的Applet.重写配置面板.新增主题等功能. 2.Docky是从GNOME Do项目剥离出来的一个Doc ...

  3. BZOJ3294: [Cqoi2011]放棋子(计数Dp,组合数学)

    题目链接 解题思路: 发现一个性质,如果考虑一个合法的方案可以将行和列都压到一起,也就是说,在占用行数和列数一定的情况下,行列互换是不会影响答案的,那么考虑使用如下方程: $f[i][j][k]$为占 ...

  4. jq---方法总结

    1. 什么是jQuery 在使用jQuery之前,我们必须先了解什么是jQuery,它能够干什么(不然我们为啥要用它). jQuery是一个非常流行的快速.小巧.功能强大的开源JavaScript库. ...

  5. eclipse工作空间配置导出

    由于工作与学习的需求,需要使用不同的工作空间.而eclipse的新建工作空间其他以前的配置都没有继承过来,那么就得重新配置一遍. 经过学习其他前辈们的经验与自己的摸索总结一下3种方法: 方法一:使用e ...

  6. Linux 关闭正在运行的程序---命令

    Ctrl + C 终止 Ctrl + D 退出 Ctrl + S 挂起 Ctrl + Q 解挂 Ctrl + Z 强制结束

  7. spring三大框架整合

        Spring概述 Spring介绍 Spring它是一个一站式的分层轻量级框架. Spring体系结构 1.      core container a)        beans与core ...

  8. hdu 6170

    dp: http://blog.csdn.net/qq_28954601/article/details/77484676 #include <bits/stdc++.h> #define ...

  9. apue和unp的学习之旅07——多种边界条件的讨论

    了解一些边界条件,通过观察这些情形,弄清在网络层次发生什么以及它们怎样反映到套接字api,这将很多其它地理解这些层次的工作原理,体会怎样编写应用程序来处理这些情形. //--------------- ...

  10. EasyUI——DataGrid中嵌入Radio

    前一篇博客写到项目中的广告位管理,当时没有写到今天的问题,这个问题当时也是困扰我好久. 经过自己的努力和同志们的帮助,最后最终解决. 实现要求把全部的广告位后面的单选button设成一组,目的是一个广 ...