Python计时相关操作详解【time,datetime】

作者:jihite 时间:2023-08-24 17:12:56 

本文实例讲述了Python计时相关操作。分享给大家供大家参考,具体如下:

内容目录:

1. 时间戳
2. 当前时间
3. 时间差
4. python中时间日期格式化符号
5. 例子

一、时间戳

时间戳是自 1970 年 1 月 1 日(08:00:00 GMT)至当前时间的总秒数。它也被称为 Unix 时间戳(Unix Timestamp),它在unix、c的世界里随处可见;常见形态是浮点数,小数点后面是毫秒。两个时间戳相减就是时间间隔(单位:秒)。

例:


import time
time1 = time.time()
time.sleep(15)
time2 = time.time()
print time2 - time1

其中,time.sleep()是休眠函数,单位:秒。

二、当前时间


>>> import datetime,time
>>> now = time.strftime("%Y-%m-%d %H:%M:%S")
>>> print now
2016-04-30 17:02:26
>>> now = datetime.datetime.now()
>>> print now

三、时间差

#1 昨天00:00到昨天23:59


>>> import datetime
>>> yestoday = datetime.datetime.now() - datetime.timedelta(days=1)
>>> t1 = "%s-00-00-00" % yestoday.strftime("%Y-%m-%d")
>>> t2 = "%s-23-59-59" % yestoday.strftime("%Y-%m-%d")
>>> print 't1', t1
t1 2016-04-29-00-00-00
>>> print 't2', t2
t2 2016-04-29-23-59-59

#2 现在往后10小时


>>> d1 = datetime.datetime.now()
>>> d3 = d1 + datetime.timedelta(hours=10)
>>> d3.ctime()
'Sun May 1 03:09:58 2

#3 这么一会的秒数、微妙数(注意是取秒、微妙部分,并不是等价转换)


>>> import datetime
>>> starttime = datetime.datetime.now()
>>> endtime = datetime.datetime.now()
>>> starttime = datetime.datetime.now()
>>> endtime = datetime.datetime.now()
>>> print endtime - starttime
0:00:07.390988
>>> print (endtime - starttime).seconds
7
>>> print (endtime - starttime).microseconds
390988

文件的时间戳


>>> import os
>>> statinfo=os.stat(r"C:/1.txt")
>>> statinfo
(33206, 0L, 0, 0, 0, 0, 29L, 1201865413, 1201867904, 1201865413)

注:使用os.stat的返回值statinfo中的后三项是文件的st_atime (访问时间), st_mtime (修改时间), st_ctime(创建时间),例如,取得文件修改时间:


>>> statinfo.st_mtime
1201865413.8952832

注:这个时间是一个linux时间戳,可以转换成易于理解的格式:


>>> import time
>>> time.localtime(statinfo.st_ctime)
(2008, 2, 1, 19, 30, 13, 4, 32, 0)

注:2008年2月1日的19时30分13秒(2008-2-1 19:30:13)

四、python中时间日期格式化符号

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

五、例子


#! coding:utf-8
''''' 日期相关的操作 '''
from datetime import datetime
from datetime import timedelta
import calendar
DATE_FMT = '%Y-%m-%d'
DATETIME_FMT = '%Y-%m-%d %H:%M:%S'
DATE_US_FMT = '%d/%m/%Y'
'''''
格式化常用的几个参数
Y : 1999
y :99
m : mouth 02 12
M : minute 00-59
S : second
d : day
H : hour
'''
def dateToStr(date):
 '''''把datetime类型的时间格式化自己想要的格式'''
 return datetime.strftime(date, DATETIME_FMT)
def strToDate(strdate):
 '''''把str变成日期用来做一些操作'''
 return datetime.strptime(strdate, DATETIME_FMT)
def timeElement():
 '''''获取一个时间对象的各个元素'''
 now = datetime.today()
 print 'year: %s month: %s day: %s' %(now.year, now.month, now.day)
 print 'hour: %s minute: %s second: %s' %(now.hour, now.minute, now.second)
 print 'weekday: %s ' %(now.weekday()+1) #一周是从0开始的
def timeAdd():
 '''''
 时间的加减,前一天后一天等操作
 datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
 参数可以是正数也可以是负数
 得到的对象可以加也可以减 乘以数字和求绝对值
 '''
 atime = timedelta(days=-1)
 now = datetime.strptime('2001-01-30 11:01:02', DATETIME_FMT)
 print now + atime
 print now - abs(atime)
 print now - abs(atime)*31
def lastFirday():
  today = datetime.today()
  targetDay = calendar.FRIDAY
  thisDay = today.weekday()
  de = (thisDay - targetDay) % 7
  res = today - timedelta(days=de)
  print res
def test():
 print dateToStr(datetime.today())
 print strToDate('2013-01-31 12:00:01')
 timeElement()
 timeAdd()
 lastFirday()
if __name__=='__main__':
 test()

结果


Connected to pydev debugger (build 141.1899)
2016-05-18 10:40:26
2013-01-31 12:00:01
year: 2016 month: 5 day: 18
hour: 10 minute: 41 second: 13
weekday: 3
2001-01-29 11:01:02
2001-01-29 11:01:02
2000-12-30 11:01:02
2016-05-13 10:41:37.001000
标签:Python,time,datetime
0
投稿

猜你喜欢

  • MySQL关系型数据库事务的ACID特性与实现

    2024-01-21 13:15:17
  • python如何为list实现find方法

    2022-01-14 09:15:56
  • 从0到1构建vueSSR项目之路由的构建

    2024-05-09 09:52:33
  • python 爬取影视网站下载链接

    2022-07-30 00:59:42
  • python实现颜色rgb和hex相互转换的函数

    2021-10-05 23:18:13
  • IDEA连接MySQL数据库并执行SQL语句使用数据图文详解

    2024-01-14 13:57:09
  • python创建文件备份的脚本

    2023-04-07 06:17:44
  • JavaScript中的ArrayBuffer详细介绍

    2024-04-19 11:02:13
  • 网页特效文字之—沙粒字

    2023-07-06 07:32:10
  • pycharm实现猜数游戏

    2023-01-14 19:04:49
  • python编程中简洁优雅的推导式示例详解

    2021-02-12 01:43:56
  • Python时间模块datetime、time、calendar的使用方法

    2023-04-02 06:44:16
  • mpvue中配置vuex并持久化到本地Storage图文教程解析

    2024-04-28 09:25:55
  • 如何用Python识别车牌的示例代码

    2023-03-09 16:06:29
  • python爬虫超时的处理的实例

    2023-02-07 15:19:11
  • Python画图练习案例分享

    2021-06-25 14:48:07
  • 深入理解Java线程编程中的阻塞队列容器

    2024-05-13 10:37:58
  • 浅析python中的分片与截断序列

    2022-05-11 02:31:03
  • MySQL实现JDBC详细步骤

    2024-01-28 13:39:11
  • numpy.random.shuffle打乱顺序函数的实现

    2021-02-04 07:19:34
  • asp之家 网络编程 m.aspxhome.com