加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

python time操作, 获取当前时间, 时间差等

(2016-02-24 15:27:26)
分类: python

Python时间操作 ( time,  datatime  以及 calendar )

在项目中长期要与时间打交道;

 

 

1.python中,通常有几种方式来表示时间 :

a:  时间戳  时间戳是指格林威治时间19700101000000(北京时间19700101080000)起至现在的总秒数     返回时间戳方式的函数主要有time()clock()

b 格式化的时间字符串   UTC  中国为utc+8

c:   元组(struct_time)   返回struct_time的函数主要有gmtime()localtime()strptime()

 

 

 

2. time模块中常用的几个函数:

   1) time.localtime([secs]): 将一个时间戳转换为当前时区的struct_timesecs参数如果没有提供,那么就以当前时间为准

    time.struct_time(tm_year=2016, tm_mon=2, tm_mday=24, tm_hour=14, tm_min=47, tm_sec=3, tm_wday=2, tm_yday=55, tm_isdst=0)

 

返回一个 struct_time的结构体

tm_year 

tm_mon

 tm_mday

tm_hour 

 tm_min    

tm_sec   

tm_wday   这周的第几天,  星期2是第二天

tm_yday   这年的第几天, 

tm_isdst  是否是夏令时

 

 

 

    2)  time.gmtime([secs]) 1)类似,不过时间为UTC, 中国地区为UTC+8,所以少8个小时

 

 

    3)   time.time()   返回当前时间的时间戳

1456296889.59431

   

    4time.mktime(t):将一个struct_time转化为时间戳。

 

 

5time.sleep(secs) 线程休眠,单位为秒

 

6.) time.clock()

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

 

 

7) time.asctime([t])  将一个表示时间的元组或者struct_time表示为这种形式'Thu May 5 14:55:43 2011'

    >>> time.asctime()    如果没有参数输入,那么为localtime()

'Thu May 5 14:55:43 2011'

 

 

8 time.ctime([secs])

  把一个时间戳(按秒计算的浮点数)转化为timeAsctime()的形式.如果没有参数,那么就是当前时间

 

 

 

time.strftime(format[,t])

   把一个代表时间的元组或者struct_time(如由time.localtime()time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。如果元组中任何一个元素越界,ValueError的错误将会被抛出。

 

 

举个例子:

>>> time.strftime("%Y-%m-%d %X", time.localtime())

'2011-05-05 16:37:06'

 

%a 本地local 简化星期名称

%A  本地完整星期名称

%b   本地简化月份名称

%B   本地完整月份名称

%c   本地相应的日期和时间表示

 

%x   本地相应日期

%X   本地相应日期

                     %y    去掉世纪的年份  (00-99)

                     %Y    完整的年份

%d   一个月中第几天

%H   一天中的第几个小时 (H表示24小时制)

%I    第几个小时(I表示12小时制)

%m    月份

%M    分钟数

%p     12小时制度时,显示ampm

%S      秒数

 

 

%j     一年中的第几天(001-366

%U     一年中的第多少星期 (0-53)

%W     (1-54)

%w      一个星期中的第几天 (0-6, 0表示星期天)

 

 

 

a.     时间戳转字符串

time_sec = time.time() 当前时间的时间戳

time.strftime( “format”, time.localtime(time_sec) )  //当前时间戳转为 元组,元组再转化为时间格式字符串

 

b.     日期格式转时间戳

d = datetime.date.today()

time_sec_float = time.mktime(d.timetuple())  日期转成元组,元组转成时间戳

 

  字符串日期格式化转为秒数,返回浮点类型

                  expire_time = "2013-05-21 09:50:35"

     d = datatime.datetime.strptime(expire_time, "%Y-%m-%d %H:%M:%S") 得到日期

                  time_sec_float = time.mktime( d.timetuple() )  日期转为元组,元组转为时间戳

 

 

d.   获取上个月的最后一天

     last_month_last_day = datetime.date( datetime.date.today().year, datetime.date.today().month(),1) – datetime.timedelta(1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有