python时间相减_python的时间类型加减操作。

昨天在玩三国风云的时候,联盟要求同时攻击某城,就想算一下出兵时间。

比如要求23:59:30到,步兵的行进需要6小时12分30秒。需要定时在什么时候出兵。我比较懒,打算用python计算一下,直接用datetime类型的做秒(6*3600+12*60+30)的减法,结果错误。。查一下,datetime类里面有个timedelta的函数:

>>>datetime.datetime(2009,3,14,23,59,30) -

datetime.timedelta(seconds=6*3600+12*60+30)

datetime.datetime(2009, 3, 14, 17, 47) 就是要定时在17:47:00出兵。

timedelta默认时间单位是天days。dir(datetime.timedelta)看一下属性就可以查出来了。用的还是蛮方便的哈~~

顺便dir(datetime.datetime)看看,直接可以用year,month等属性,

更多来源:http://www.jiejuchina.com/question/

越来越喜欢python了,不过最近给老婆做个软件,cs结构,还是用pb做快,又翻出pb来,找以前的同事要了一份以前的类库,嘻嘻,感觉真好。。。python做桌面应用也可以,用了一下boa开发平台,感觉和delphi一样,很爽,可惜刚看一点例子,还没有能力开发商业化的东东,估计要等一段时间才能继续研究python啦。。。

import time, datetime

1. 得到当前时间

time.localtime() -> (2010, 1, 18, 13, 13, 2, 0, 18,

0)

datetime.datetime.now() -> datetime.datetime(2010, 1, 18, 13, 13, 47, 781000)

2. 日期转字符串:

(1) str(xx)

(2) time提供的函数:

time.strftime([format], time)

time.strftime('%Y-%m-%d %H:%M:%S', startTime)

'2009-06-03 13:44:51'

3. 字符串转日期:

(1) 字符串转time:

d = time.strptime(strStartTime, '%Y-%m-%d %H:%M:%S')

(2009, 6, 3, 13, 44, 51, 2, 154, -1)

type(d)

(2) 字符串转datetime

datetime的好处是可以实现方便的时间运算,比如 endTime -

starTime,这在时间duration计算时非常方便.

# Convert

string start time and end time to datetime.datetime

startTime = datetime.datetime(tmpStartTime[0], tmpStartTime[1],

tmpStartTime[2], tmpStartTime[3], tmpStartTime[4], tmpStartTime[5]

);

import time

>>> s="2006-1-2"

>>> time.strptime(s,"%Y-%m-%d)

这是将字符串格式的日期及时间转成日期对象

转义符对应意义如下

%a 本地简化星期名称

%A 本地完整星期名称

%b 本地简化的月份名称

%B 本地完整的月份名称

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

%d 月内中的一天(0-31)

%H 24小时制小时数(0-23)

%I 12小时制小时数(01-12)

%j 年内的一天(001-366)

%m 月份(01-12)

%M 分钟数(00=59)

%p 本地A.M.或P.M.的等价符

%S 秒(00-59)

%U 一年中的星期数(00-53)星期天为星期的开始

%w 星期(0-6),星期天为星期的开始

%W 一年中的星期数(00-53)星期一为星期的开始

%x 本地相应的日期表示

%X 本地相应的时间表示

%y 两位数的年份表示(00-99)

%Y 四位数的年份表示(000-9999)

%Z 当前时区的名称

%% %号本身

============================================

#-*- coding:utf-8 -*-

import time

import datetime

# 2007-11-25 15:36:35

#使用datetime模块可以很方便的解决这个问题,举例如下:

d1 = datetime.datetime(2005, 2, 16)

d2 = datetime.datetime(2004, 12, 31)

# 结果:47

print (d1 - d2).days

#上例演示了计算两个日期相差天数的计算。

starttime = datetime.datetime.now()

endtime = datetime.datetime.now()

print (endtime - starttime).seconds

#上例演示了计算运行时间的例子,以秒进行显示。

d1 = datetime.datetime.now()

d3 = d1 + datetime.timedelta(days =10)

print str(d3)

print d3.ctime()

# 上例演示了计算当前时间向后10天的时间。

# 如果是小时 days 换成 hours

# 其本上常用的类有:datetime和timedelta两个。它们之间可以相互加减。

#

每个类都有一些方法和属性可以查看具体的值,如datetime可以查看:天数(day),小时数(hour),星期几(weekday())等;

# timedelta可以查看:天数(days),秒数(seconds) 等。

#

# time , datetime , string 类型互相转换

#

# string -> time

# time.strptime(publishDate,"%Y-%m-%d %H:%M:%S")

#

# time -> string

# time.strftime("%y-%m-%d",t)

date = '2007-01-01'

print type(date)

date = time.strptime(date,"%Y-%m-%d")

print type(date)

print date[0]

d4 = datetime.datetime(date[0], date[1],date[2])

print d4

print type(d4)

#将日期时间对象转成字符串则要用

date = time.strftime("%y-%m-%d",date)

print type(date)

#其中d为日期时间对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值