import datetime

print time.time() #时间戳

print time.localtime(time.time()) #时间元组

print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) #str

current= datetime.datetime.now() #

justnow = current - datetime.timedelta(hours=1) #, justnow表示"一个小时之前"

print current.strftime('%Y-%m-%d %H:%M:%S') #str

print justnow.strftime('%Y-%m-%d %H:%M:%S') #str

一:经常使用的时间方法

1.得到当前时间

使用time模块,首先得到当前的时间戳

In [42]: time.time()

Out[42]: 1408066927.208922

将时间戳转换为时间元组 struct_time

In [43]: time.localtime(time.time())

Out[43]: time.struct_time(tm_year=2014, tm_mon=8, tm_mday=15, tm_hour=9, tm_min=42, tm_sec=20, tm_wday=4, tm_yday=227, tm_isdst=0)

格式化输出想要的时间

In [44]: time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))

Out[44]: '2014-08-15 09:43:04'

接上文,不加参数时,默认就是输出当前的时间

In [48]: time.strftime('%Y-%m-%d %H:%M:%S')

Out[48]: '2014-08-15 09:46:53’

当然也可以透过datetime模块来实现,如下:

In [68]: t = time.time()

In [69]: datetime.datetime.fromtimestamp(t).strftime('%Y-%m-%d %H:%M:%S')

Out[69]: '2014-08-15 10:04:51’

同时,也可以只使用datetime模块

In [46]: datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

Out[46]: '2014-08-15 09:45:27’

In [47]: datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')

Out[47]: '2014-08-15 09:46:10'

2.获取时间差,计算程序的执行时间等:

使用time模块:

In [75]: def t():

....: start = time.time()

....: time.sleep(10)

....: end = time.time()

....: print end - start

....:

In [76]: t()

10.0014948845

使用datetime模块:

In [49]: starttime = datetime.datetime.now()

In [50]: endtime = datetime.datetime.now()

In [51]: print (endtime - starttime).seconds

6

3.计算昨天的日期(发散思维,计算其他日期相加、相减等):

In [52]: d1 = datetime.datetime.now()

In [53]: d2 = d1 - datetime.timedelta(days=1)

In [54]: d1

Out[54]: datetime.datetime(2014, 8, 15, 9, 54, 10, 68665)

In [55]: d2

Out[55]: datetime.datetime(2014, 8, 14, 9, 54, 10, 68665)

4.时间元组 struct_time转化为时间戳

In [56]: datetime.datetime.now()

Out[56]: datetime.datetime(2014, 8, 15, 9, 57, 52, 779893)

In [57]: datetime.datetime.now().timetuple()

Out[57]: time.struct_time(tm_year=2014, tm_mon=8, tm_mday=15, tm_hour=9, tm_min=58, tm_sec=12, tm_wday=4, tm_yday=227, tm_isdst=-1)

In [58]: time.mktime(datetime.datetime.now().timetuple())

Out[58]: 1408067904.0

5.strptime也挺有用的,将时间字符串转换为时间元组struct_time

In [73]: time.strftime('%Y-%m-%d %H:%M:%S')

Out[73]: '2014-08-15 10:27:36'

In [74]: time.strptime('2014-08-15 10:27:36','%Y-%m-%d %H:%M:%S')

Out[74]: time.struct_time(tm_year=2014, tm_mon=8, tm_mday=15, tm_hour=10, tm_min=27, tm_sec=36, tm_wday=4, tm_yday=227, tm_isdst=-1)

参考资料:

Date and Time Representation in Python:http://www.seehuhn.de/pages/pdate

二:time和datetime模块常用方法简介

表示时间的两种方式:

1. 时间戳(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的

2. 时间元组 即(struct_time),共有九个元素,分别表示,同一个时间戳的struct_time会因为时区不同而不同

time 模块常用方法小记

1.time.clock()

这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间 戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。(实际上是以WIN32 上QueryPerformanceCounter()为基础,它比毫秒表示更为精确)

budong@budongdeMacBook-Pro:/tmp$ cat clock.py

#!/usr/bin/env python

import time

if __name__ == '__main__':

time.sleep(1)

print "clock1:%s" % time.clock()

time.sleep(1)

print "clock2:%s" % time.clock()

time.sleep(1)

print "clock3:%s" % time.clock()

运行脚本:

budong@budongdeMacBook-Pro:/tmp$ ./clock.py

clock1:0.059173

clock2:0.059299

clock3:0.059416

2.time.sleep(secs)

线程推迟指定的时间运行

适合放在脚本里,定时sleep一会然后继续干啥

In [138]: while True:

.....: time.sleep(3)

.....: print time.strftime('%H:%M:%S')

.....:

17:21:35

17:21:38

17:21:41

17:21:44

……

3.time.localtime([secs])

将一个时间戳转换成一个当前时区的struct_time,如果seconds参数未输入,则以当前时间为转换标准

未提供secs参数时,按当前时间为准

In [141]: time.localtime()

Out[141]: time.struct_time(tm_year=2014, tm_mon=8, tm_mday=14, tm_hour=17, tm_min=23, tm_sec=48, tm_wday=3, tm_yday=226, tm_isdst=0)

提供secs为当前时间戳时

In [142]: time.time()

Out[142]: 1408008232.217969

In [143]: time.localtime(time.time())

Out[143]: time.struct_time(tm_year=2014, tm_mon=8, tm_mday=14, tm_hour=17, tm_min=24, tm_sec=2, tm_wday=3, tm_yday=226, tm_isdst=0)

4.time.strftime(format[, t])

将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出

t未指定,传入time.localtime()作为默认参数:

In [156]: time.strftime('%Y-%m-%d %H:%M:%S')

Out[156]: '2014-08-14 17:28:16’

指定t为time.localtime(1407945600.0)时:

In [157]: time.localtime(1407945600.0)

Out[157]: time.struct_time(tm_year=2014, tm_mon=8, tm_mday=14, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=226, tm_isdst=0)

In [158]: time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(1407945600.0))

Out[158]: '2014-08-14 00:00:00’

5.time.time()

返回当前时间的时间戳

In [161]: time.time()

Out[161]: 1408008711.730218

6.time.mktime(t)

将一个struct_time转换为时间戳,如下time.localtime接收一个时间戳返回一个struct_time,而time.mktime接收一个struct_time,返回一个时间戳

In [159]: time.localtime(1407945600.0)

Out[159]: time.struct_time(tm_year=2014, tm_mon=8, tm_mday=14, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=226, tm_isdst=0)

In [160]: time.mktime(time.localtime(1407945600.0))

Out[160]: 1407945600.0

残阳似血的博客:

官方time模块:

##datetime 模块常用方法小记

datetime模块常用的主要有下面这四个类:

1. datetime.date: 是指年月日构成的日期(相当于日历)

2. datetime.time: 是指时分秒微秒构成的一天24小时中的具体时间(相当于手表)

3. datetime.datetime: 上面两个合在一起,既包含时间又包含日期

4. datetime.timedelta: 时间间隔对象(timedelta)。一个时间点(datetime)加上一个时间间隔(timedelta)可以得到一个新的时间点(datetime)。比如今天的上午3点加上5个小时得到今天的上午8点。同理,两个时间点相减会得到一个时间间隔。

1.datetime.date 类

1.新建一个date对象,日期为今天,既可以直接调用datetime.date.today(),也可以直接向datetime.date()传值,如下:

In [4]: today = datetime.date.today()

In [5]: today

Out[5]: datetime.date(2014, 8, 15)

In [6]: t = datetime.date(2014,8,15)

In [7]: t

Out[7]: datetime.date(2014, 8, 15)

2.datetime.date.strftime(format) 格式化为需要的时间,如常用的 “年-月-日 小时:分钟:秒” 格式

In [8]: today.strftime('%Y-%m-%d %H:%M:%S')

Out[8]: '2014-08-15 00:00:00’

date对象中小时、分钟、秒默认都是0,纪元年的那个时间

3.datetime.date.timple() 转成struct_time格式,这样传递给time.mktime(t) 后,直接转成时间戳格式

In [9]: today.timetuple()

Out[9]: time.struct_time(tm_year=2014, tm_mon=8, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=227, tm_isdst=-1)

In [10]: time.mktime(today.timetuple())

Out[10]: 1408032000.0

4.datetime.date.replace(year, month, day) 返回一个替换后的date对象

In [11]: today.replace(year=2013)

Out[11]: datetime.date(2013, 8, 15)

5.datetime.date.fromtimestamp(timestamp) 将时间戳转化为date对象

In [12]: datetime.date.fromtimestamp(1408058729)

Out[12]: datetime.date(2014, 8, 15)

2.datetime.time 类

1.新建一个time对象

In [15]: t

Out[15]: datetime.time(8, 45, 20)

2.datetime.time.(format)格式化输出

In [16]: t.strftime('%Y-%m-%d %H:%M:%S')

Out[16]: '1900-01-01 08:45:20’

time对应的年、月、日为1900、01、01,纪元年的那个时间

3.datetime.time.replace([hour[, minute[, second[, microsecond[, tzinfo]]]]]) 返回一个替换后的time对象

In [17]: t.replace(hour=9)

Out[17]: datetime.time(9, 45, 20)

3.datetime.datetime类

其实和date的那些方法差不多了,大概看以下,简单说说

1.新建一个datetime对象,日期为今天,既可以直接调用datetime.datetime.today(),也可以直接向datetime.datetime()传值,如下:

In [21]: d1 = datetime.datetime.today()

In [22]: d1

Out[22]: datetime.datetime(2014, 8, 15, 8, 12, 34, 790945)

In [23]: d2 = datetime.datetime(2014, 8, 15, 8, 12, 34, 790945)

In [24]: d2

Out[24]: datetime.datetime(2014, 8, 15, 8, 12, 34, 790945)

2.datetime.datetime.now([tz]) 当不指定时区时,和datetime.datetime.today()是一样的结果,如下

In [25]: datetime.datetime.now()

Out[25]: datetime.datetime(2014, 8, 15, 8, 14, 50, 738672)

3..datetime.datetime.strftime(format) 格式化为需要的时间,如常用的 “年-月-日 小时:分钟:秒” 格式

In [27]: d1

Out[27]: datetime.datetime(2014, 8, 15, 8, 12, 34, 790945)

In [28]: d1.strftime('%Y-%m-%d %H:%M:%S')

Out[28]: '2014-08-15 08:12:34’

4.datetime.datetime.timple() 转成struct_time格式,这样传递给time.mktime(t) 后,直接转成时间戳格式

In [29]: d1

Out[29]: datetime.datetime(2014, 8, 15, 8, 12, 34, 790945)

In [30]: d1.timetuple()

Out[30]: time.struct_time(tm_year=2014, tm_mon=8, tm_mday=15, tm_hour=8, tm_min=12, tm_sec=34, tm_wday=4, tm_yday=227, tm_isdst=-1)

In [31]: time.mktime(d1.timetuple())

Out[31]: 1408061554.0

5.datetime.datetime.replace(year, month, day) 返回一个替换后的date对象

In [32]: d1

Out[32]: datetime.datetime(2014, 8, 15, 8, 12, 34, 790945)

In [33]: d1.replace(year=2000)

Out[33]: datetime.datetime(2000, 8, 15, 8, 12, 34, 790945)

6.datetime.datetime.fromtimestamp(timestamp) 将时间戳转化为datetime对象

In [34]: time.time()

Out[34]: 1408061894.081552

In [35]: datetime.datetime.fromtimestamp(1408061894)

Out[35]: datetime.datetime(2014, 8, 15, 8, 18, 14)

4.datetime.timedelta类

没啥好说的,主要做时间的加减法用,如下:

In [78]: today = datetime.datetime.today()

In [79]: yesterday = today - datetime.timedelta(days=1)

In [80]: yesterday

Out[80]: datetime.datetime(2014, 8, 14, 15, 8, 25, 783471)

In [81]: today

Out[81]: datetime.datetime(2014, 8, 15, 15, 8, 25, 783471)

参考资料:

python 时间模块判断上午还是下午_Python的时间模块小结(转自:不懂真人)相关推荐

  1. php计算时间早上中午,php如何判断上午还是下午

    php判断上午还是下午的实现方法:首先设置中国时区:然后定义一个GetDateTime方法:然后通过if else语句判断当前时间是上午还是下午:最后输出判断结果即可. 根据当前时间判断上午好.下午好 ...

  2. python的time库有哪些方法_Python的time模块中的常用方法整理

    在应用程序的开发过程中,难免要跟日期.时间处理打交道.如:记录一个复杂算法的执行时间:网络通信中数据包的延迟等等.Python中提供了time, datetime calendar等模块来处理时间日期 ...

  3. python创建字典和包的区别_python之路—模块和包

    一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ...

  4. python日历模块提示没有属性月_Python calendar日历模块的说明

    calendar(日历)模块,默认每周第一天是星期一,最后一天是星期天. 函数及描述 1. calendar.calendar(year, w=2, l=1, c=6, m=3) 返回一个多行字符串格 ...

  5. python模块与类的区别_Python类、模块、包的概念及区别

    类 类的概念在许多语言中出现,是面向对象编程的基础,很容易理解.抽象出不同物体的共同特征,根据相似性原则,把彼此相似的物体归于相同的类概念, 它将数据和操作进行封装,以便将来的复用. 模块 模块,在 ...

  6. python中def main是什么意思_Python中’__main__’模块的作用

    Python不同于C/C++,程序执行并不需要主程序,如main(),而是文件自上而下的执行. 但很多Python程序中都有 1 if __name__ == '__main__':2 stateme ...

  7. python中导入模块是用哪个关键字_python中导入模块的关键字是什么_后端开发

    c语言中\t是什么意思_后端开发 C语言的[\t]代表的意思是水平制表符,相当于按了键盘上的TAB按键,通常宽度相当于8个空格的位置,但有些软件允许设置tab的宽度,在双引号或定界符表示的字符串中有效 ...

  8. python中uppercase是什么意思_python判断大小写并转换_python中string模块相关方法(大小写转换,字符串条件判断)....

    string模块主要包含关于字符串的处理函数,在这里列举经常会使用的一些函数. 在例如获取随机密码等之类的题时可能会用到这类函数 1.string.ascii_letters 获取所有ascii码中字 ...

  9. Javascript---获取系统时间,实现12小时制并判断上午或下午

    1.案例代码:         <!DOCTYPE html> <html>     <head>         <meta charset="u ...

  10. python和excel的结合新软件_Python处理Excel模块的对比分析!

    数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...

最新文章

  1. 使用wordpress创建自己的博客
  2. 解析 Java 类和对象的初始化过程 由一个单态模式引出的问题谈起
  3. C#后台线程和UI的交互
  4. Oracle inline view 简介
  5. 【Python】判断列表中是否存在一个数
  6. html input file 修改按钮文字_html单选按钮默认选中怎么做?input标签的单选按钮用法实例...
  7. RedHat 6.4下安装Openoffice软件
  8. Blog小技巧之二-让朋友在Blog上也能QQ到自己
  9. Ollydbg使用教程学习总结(三)
  10. 数据可视化的基本原理——视觉通道
  11. 【BZOJ4025】二分图(可撤销并查集+线段树分治)
  12. latex中pdflatex与xelatex的区别
  13. Linux vim常用命令
  14. 开个怀旧零食店很有前景!
  15. OpenCV实现人脸对齐
  16. jQuery仿百度商桥在线客服代码
  17. linux运行Windows模拟器,Wine(Windows模拟器)
  18. 神经网络打印模型参数及参数名字和数量
  19. 《高性能MySQL》 第三章 服务器性能剖析 读书笔记
  20. 应用在生物医学领域中的NLP预训练语言模型(PubMedBERT)

热门文章

  1. Android 集成支付宝支付
  2. android+设置运行内存大小,怎样增大安卓手机的虚拟运行内存RAM ,手机的ram太小....
  3. 讲给后台程序员看的前端系列教程(17)——文本样式
  4. python编程从入门到实践练习7-10:梦想的旅游胜地
  5. 人工智能专业保研面试如何准备?
  6. 2021 IT运维调查报告
  7. 单片机的俄罗斯方块游戏设计
  8. 虚幻竞技场3中的配置文件
  9. QQ空间说说一键批量删除软件2.0使用教程
  10. Go:go程序报错Cannot run program