在Python中,和时间处理相关的模块有time,datatime,calendar(不常用)三个。

UTCC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。

在Python中时间的表示方式分三种:

  1. 时间戳(timestamp):时间戳表示从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。

    >>> time.time()
    1521948761.733449
    >>> type(time.time())
    <class 'float'>
  2. 格式化的时间字符串:2014-11-11 11:11,即time.strftime('%Y-%m-%d')
    >>> import time
    >>> time.strftime('%Y-%m-%d')
    '2018-03-25'
  3. 元组(struct_time)共九个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()
    >>> import time
    >>> time.localtime()
    time.struct_time(
    tm_year=2018, # 年
    tm_mon=2, # 月
    tm_mday=26, # 日
    tm_hour=2, # 时
    tm_min=47, # 分
    tm_sec=49, # 秒
    tm_wday=0, # 星期几(0代表星期日)
    tm_yday=57, # 一年中第几天
    tm_isdst=0) # 是否夏令时,默认是-1
time模块

      

time常用方法:

>>> time.time()  # 返回当前时间的时间戳(按秒计算的浮点数),从1970到现在的秒数
1521948276.9173918 >>> time.localtime() # 打印本地时间(操作系统时间)
time.struct_time(tm_year=2018, tm_mon=3, tm_mday=25, tm_hour=11, tm_min=22, tm_sec=27, tm_wday=6, tm_yday=84, tm_isdst=0) >>> time.gmtime() # 打印格林威治时间(比北京时间晚8个小时)
time.struct_time(tm_year=2018, tm_mon=3, tm_mday=25, tm_hour=3, tm_min=55, tm_sec=55, tm_wday=6, tm_yday=84, tm_isdst=0) time.mktime() # 把一个时间对象转化为时间戳
>>> time.mktime(time.localtime())
1521950235.0 time.sleep() # 线程推迟指定的时间运行,单位为秒 time.asctime() # 把一个表示时间的元祖或struct time转换表示形式
>>> time.asctime() # 如果没有参数将time.localtime作为参数传入
'Mon Feb 26 10:59:10 2018' time.ctime() # 把一个时间戳转化为time_asctime()形式,默认以time.time()为参数
>>> time.ctime() # 相当于time.asctime(time.localtime(secs))
'Mon Feb 26 11:06:29 2018'
>>> time.ctime(-231334422) # 参数可以为负
'Sun Sep 2 20:26:18 1962't time.strftime(format,a) # 把一个代表时间的元祖或struct time转化为格式化的时间字符串
>>> time.strftime('%Y-%m-%d')
'2018-02-26'
>>> time.strftime('%Y-%m-%d %H:%M:%S')
'2018-02-26 11:19:47'
>>> time.strftime('%Y-%m-%d %H:%M:%S',a)
'2018-02-26 10:40:18'
>>> time.strftime('%Y-%m-%d %H:%M:%S %A',a)
'2018-02-26 10:40:18 Monday'
>>> time.strftime('%Y-%m-%d %H:%M:%S %p')
'2018-02-26 11:21:44 AM'
>>> time.strftime('%Y-%m-%d %H:%M:%S %U') # 今年的第几周
'2018-02-26 11:21:55 08'
>>> time.strftime('%Y-%m-%d %H:%M:%S %w') # 0-6,星期日是0
'2018-02-26 11:24:56 1' time.strptime('string', format) # 把一个格式化时间字符串转化为struct_time,stftime的逆操作
>>> s = time.strftime('%Y %m-%d %H:%M:%S')
>>> s
'2018 02-26 11:42:16'
>>> time.strptime(s,'%Y %m-%d %H:%M:%S')
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=26, tm_hour=11, tm_min=42, \
tm_sec=16, tm_wday=0, tm_yday=57, tm_isdst=-1)
datetime模块

  datetime模块相比time模块,datetime模块的接口更直观,更容易调用。

  datetime模块定义了下面几个类:

    1、datetime.date:表示日期的类,常用的属性有year,month,day

    2、datetime.time:表示时间的类,常用的属性有hour,minute,second,microsecond

    3、datetime.datetime:表示日期时间

    4、datetime.timedelta:表示时间间隔,即两个时间点之间的长度

    5、datetime.tzinfo:与时区相关信息

>>> a = datetime.datetime.now()
datetime.datetime(2018, 2, 26, 12, 8, 18, 805166) >>> import time
>>> d2 = datetime.date.fromtimestamp(time.time()) # 时间戳转化为年月日
datetime.date(2018, 2, 26) >>> d2.timetuple() # 转化为时间对象
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=26, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=57, tm_isdst=-1) # 时间运算
>>> a = datetime.datetime.now()
>>> t1 = datetime.timedelta(1)
>>> a - t1
datetime.datetime(2018, 2, 25, 13, 37, 13, 812339) >>> a - datetime.timedelta(days=1)
datetime.datetime(2018, 2, 25, 13, 37, 13, 812339)
>>> a - datetime.timedelta(days=3)
datetime.datetime(2018, 2, 23, 13, 37, 13, 812339)
# 还支持hours、minutes、secends的运算
>>> a - datetime.timedelta(hours=3)
datetime.datetime(2018, 2, 26, 10, 37, 13, 812339)
>>> a + datetime.timedelta(hours=3)
datetime.datetime(2018, 2, 26, 16, 37, 13, 812339) # 时间替换
>>> n = datetime.datetime.now()
>>> n.replace(year=2016)
datetime.datetime(2016, 2, 26, 13, 45, 26, 863002)
>>> n.replace(year=2017,month=4)
datetime.datetime(2017, 4, 26, 13, 45, 26, 863002)
>>> n.replace(year=2017,month=4,day=13)
datetime.datetime(2017, 4, 13, 13, 45, 26, 863002) # replace实现时间计算
>>> expire_year = time.localtime()[0] # 当前年份
>>> expire_date = datetime.datetime.now().replace(year=expire_year+10).strftime('%Y-%m-%d')
>>> expire_date
'2028-03-25'

time&datetime模块的更多相关文章

  1. python中datetime模块

    Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块我在之前的文章已经有所介绍,它提供 的接口与C标准库time.h基本一致.相比于time模块 ...

  2. python datetime模块参数详解

    Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块,它提供 的接口与C标准库time.h基本一致.相比于time模块,datetime模块的接 ...

  3. Python处理时间 time && datetime 模块

    Python处理时间 time  &&  datetime 模块 个人整理,获取时间方式: import datetime import time #获取当前时间:Thu Nov 03 ...

  4. python time模块和datetime模块详解

    一.time模块 time模块中时间表现的格式主要有三种: a.timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b.struct_time时间元组,共 ...

  5. python-Day5-深入正则表达式--冒泡排序-时间复杂度 --常用模块学习:自定义模块--random模块:随机验证码--time & datetime模块

    正则表达式   语法:             mport re #导入模块名 p = re.compile("^[0-9]") #生成要匹配的正则对象 , ^代表从开头匹配,[0 ...

  6. python datetime模块strptime/strptime format常见格式命令_施罗德_新浪博客

    python datetime模块strptime/strptime format常见格式命令_施罗德_新浪博客     python datetime模块strptime/strptime form ...

  7. Python datetime模块的datetime类

    datetime模块定义了下面这几个类: datetime.date:表示日期的类.常用的属性有year, month, day. datetime.time:表示时间的类.常用的属性有hour, m ...

  8. python处理时间--- datetime模块

    1   Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致.相比于tim ...

  9. Python,datetime模块实例

    Python的标准模块datetime模块,在我们的工作中应用非常频繁,下面对datetime中常用的方法进行了总结和测试:对每一个方法都使用了单元测试框架Unittest来配合测试. 主要的类型有: ...

  10. python3 time模块与datetime模块

    time模块 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素.由于Python的time模块实现主要调用C库,所以各个平 ...

随机推荐

  1. UML之类图详解

    原文链接:https://www.cnblogs.com/xsyblogs/p/3404202.html 我们通过一个示例来了解UML类图的基本语法结构.画UML类图其实有专业的工具,像常用的Visi ...

  2. 在Windows上搭建Git Server (2)

      第一步:下载Java,下载地址:http://www.java.com/zh_CN/ 第二步:安装Java.安装步骤不再详述. 第三步:配置Java环境变量. 右键”计算机” => ”属性” ...

  3. 对KMP算法通过代码生成next数组理解

    本文是根据考研数据结构2019版天勤高分笔记理解编写的: 首先给出代码: 1 void getnext(Str substr,int next[]){ 2 int i=0,j=0; 3 next[1] ...

  4. Markdown 语法快速入门手册

    Markdown 是一种轻量级标记语言,能将文本换成有效的XHTML(或者HTML)文档,它的目标是实现易读易写,成为一种适用于网络的书写语言. Markdown 语法简洁明了,易于掌握,所以用它来写 ...

  5. flask总结05(在 Flask 项目中解决 CSRF 攻击)

    一:安装 flask_wtf pip install flask_wtf 二:设置应用程序的 secret_key,用于加密生成的 csrf_token 的值 # session加密的时候已经配置过了 ...

  6. Codeforces - 617E 年轻人的第一道莫队

    我对莫队算法最为纠结的地方就是区间端点处,应该是像代码里那样理解吧 cnt[i]表示i出现的次数 maxn开2e6比较保险 /*H E A D*/ struct Query{ int l,r,id; ...

  7. HDU - 6183 动态开点线段树 || 令人绝望的线段树

    一看C才[0,50],肯定要开51棵线段树维护y区间的最小x值啦 是男人就上51棵..等等空间爆几倍了 动态开点!51棵线段树用全局节点变量控制,有点像主席树 清空工作很简单,把51个树根清掉然后回收 ...

  8. java的长字符串转化为短字符串

    public class CustomEncrypt{ public static void main( String[] args ) { /* * c#给的正确测试用例: id=>mid * ...

  9. HTML5本地存储和本地的数据库

    一个网站如何能在客户的浏览器存储更多的数据呢? 在Html4的时代在浏览器端存储点网站个性化的数据,尤其是用户浏览器的痕迹,用户的相关数据等一般只能存储在Cookie中,但是大多是浏览器对于Cooki ...

  10. 经常谈到Oracle的权限,你究竟知道多少

    作者: 三十而立 时间:2009年10月28日 9:41:15 请尊重原创作品.转载请保持文章完整性,并以超链接形式注明原始作者"inthirties(三十而立)" 接着上面谈到的 ...