当前位置: 首页 > 知识库问答 >
问题:

在Python中修剪日期的有效方法是什么?

郏扬
2023-03-14

目前我正在尝试用下面的代码将当前日期修剪成日、月和年。

#Code from my local machine
from datetime import datetime
from datetime import timedelta

five_days_ago = datetime.now()-timedelta(days=5)
# result: 2017-07-14 19:52:15.847476

get_date = str(five_days_ago).rpartition(' ')[0]
#result: 2017-07-14

#Extract the day
day = get_date.rpartition('-')[2]
# result: 14

#Extract the year
year = get_date.rpartition('-')[0])
# result: 2017-07 
    null

我在下面的技术中尝试了我的代码。设置:使用Python 3.5.2(x64)、Python 3.6.1(x64)的local machine和使用Python 3.6.1的Repl.it

联机试用代码,复制并粘贴行代码

共有1个答案

劳韬
2023-03-14

请尝试以下操作:

from datetime import date, timedelta

five_days_ago = date.today() - timedelta(days=5)
day = five_days_ago.day
year = five_days_ago.year

如果您想要的是日期(而不是日期和时间),请使用date而不是datetime。然后,日期和年份只是date对象的属性。

至于您关于rpartition的问题,它的工作原理是拆分最右边的分隔符(在您的例子中,是月份和日期之间的连字符)--这就是rpartition中的r的意思。因此get_date.rpartition('-')返回['2017-07','-','14']

如果您希望坚持您的方法,那么如果您用partition替换rpartition,您的year代码就可以正常工作,例如:

year = get_date.partition('-')[0]
# result: 2017

但是,还有一种相关的(更好的)方法--使用split:

parts = get_date.split('-')
year = parts[0]
month = parts[1]
day = parts[2]
 类似资料:
  • 问题内容: 我想问一下在两个日期之间搜索数据的最有效(最快)方法是什么? 让我们考虑以下简单查询: “ Date_”列是DATETIME类型。 我尝试了不同的选择,例如: 和 和 实际上,此Select查询要复杂得多(具有联接和更多条件)。这只是简化版本。根据EXPLAIN,查询的执行方式没有区别。我需要说Date_列已建立索引。不幸的是,我无法测试实际的查询速度,因为我无法避免操作系统缓存,但是

  • 我正在寻找一种更有效的方法来修剪用JGrapht构造的有向无环图(a DAG)。 DAG表示一组网络会话之间的时间关系。会话的父会话是在子会话开始之前完成的任何会话。构建DAG相对简单,但存在大量不必要的关系。为了提高效率,我希望对DAG进行修剪,以便每个子级与最小的父级数量有直接关系(或者相反,以便每个父级具有最小的直接子级数量)。 我现在使用的剪枝实现(如下所示)是基于在Streme中找到的代

  • 问题内容: 我正在构建一种日历Web应用程序 我已经在HTML中设置了以下表格 然后,来自用户的输入将被提交到小服务器中 我想知道,有没有办法检查用户输入的日期是否是有效日期? 显然,我可以编写很多if语句,但是是否有任何内置函数可以检查这一点? 谢谢 问题答案: 你可以尝试做 这将消除诸如> 12,小时> 23,不存在的leap日等问题(在不month年,month = 2的最大值为28,否则为

  • 图片: 我有边界多边形的坐标(不是一个精确的矩形)。如何以有效的方式从图像中旋转和提取测量仪? 我已经能够通过以下方式旋转图像 但这也改变了box的坐标。 预期输出 :

  • 本文向大家介绍python判断给定的字符串是否是有效日期的方法,包括了python判断给定的字符串是否是有效日期的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python判断给定的字符串是否是有效日期的方法。分享给大家供大家参考。具体分析如下: 这里python判断给定的字符串是否是一个有效的日期,如果是一个日期格式的字符串,该函数返回True,否则返回False 希望本文所述对大

  • 在JavaScript中使用或时,我不能只传递任意的日期格式。根据格式的不同,我会得到一个与我想要的不同的日期,甚至而不是一个date对象。某些日期格式在一种浏览器中工作,而在其他浏览器中则不行。那么我应该使用哪种日期时间格式呢? > 所有浏览器都支持相同的格式吗?Mozilla Firefox、Google Chrome、Microsoft Internet Explorer、Microsoft