首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有标准库的情况下增加和减少日期

问在没有标准库的情况下增加和减少日期
EN

Stack Overflow用户
提问于 2009-10-20 16:02:47
回答 4查看 674关注 0票数 0

我在一个有限的环境中开发python脚本。

我的问题是我必须能够完成日期时间的加法和减法。

例如,我得到以下字符串:

代码语言:javascript
复制
"09/10/20,09:59:47-16"

格式为年/月/日,小时:分钟:秒-毫秒。

在Python中,我如何在这个数字上加上30秒?除了基本的加法、减法和字符串解析函数之外,我不能使用任何其他函数。

EN

回答 4

Stack Overflow用户

发布于 2009-10-20 16:06:22

你在不同的基础上做数学运算。您需要解析字符串并得出一个值列表,例如(年、月、日、小时、分钟、秒),然后进行基于其他的数学加法和减法运算。例如,小时数是以24为基数,因此您需要使用模数来执行计算。这听起来像是家庭作业,所以我不会再详细介绍了:)

票数 2
EN

Stack Overflow用户

发布于 2009-10-21 00:06:41

出于完整性考虑,默认的python发行版中包含了datetime.datetime.strptime和datetime.timedelta。

代码语言:javascript
复制
from datetime import datetime, timedelta

got = "09/10/20,09:59:47-16"

dt = datetime.strptime(got, '%y/%m/%d,%H:%M:%S-%f')
dt = dt + timedelta(seconds=30)
print dt.strftime('%y/%m/%d,%H:%M:%S-%f')

打印准确

代码语言:javascript
复制
09/10/20,10:00:17-160000

Docs here。

票数 2
EN

Stack Overflow用户

发布于 2009-10-21 00:09:10

执行日期运算的最简单方法是不在日期上实际执行该运算,而是对更简单的数量执行该运算。

通常,较简单的数量是自某个时期以来的秒数。1970年1月1日的结果很好。知道纪元,每个月的天数,以及哪些年份是闰年,你可以很容易地从这个“秒数”表示转换成日期字符串(如果在原始版本中不慢的话)。

您还需要将日期字符串转换回更简单的表示形式。这又一次,不是太难。

一旦你有了这两个函数,算术就很简单了。只需在"number of seconds“表示中添加或减去时间量即可。然后转换回日期字符串。

综上所述,我希望这是一个家庭作业,因为你绝对不应该在生产代码中编写自己的日期处理函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1595704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档