相关疑难解决方法(0)

来自python的诞生日期

我怎样才能从今天的日期和一个人的出生日期中找到蟒蛇的年龄?birthdate来自Django模型中的DateField.

python datetime date

142
推荐指数
8
解决办法
13万
查看次数

使用 datetime.timedelta 添加年份

我正在用 Python 做一些时间计算。

目标:

其中一部分是试图:

给定一个日期,加上时间间隔(X 年,X 个月,X 周),返回日期

IE

  • 输入参数:input_time (datetime.date), interval (datetime.timedelta)
  • 返回:datetime.date

我查看了 datetime 和datetime.timedelta 文档

class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, week=0)¶。

如果我想增加一定数量的小时数或周数,这些似乎效果很好。然而,

问题:

  • 我正在尝试实施诸如日期 + 1 年之类的操作,但无法弄清楚

例如

start = datetime.datetime(2000, 1, 1)
# expected output: datetime.datetime(2001, 1, 1)


# with the weeks, etc arguments given in timedelta, this fails unsurprisingly e.g 
start + datetime.timedelta(weeks = 52)

# returns datetime.datetime(2000, 12, 30, 0, 0)

Run Code Online (Sandbox Code Playgroud)

  • 使用 datetime 的基本工具是否可以进行基于年份的操作 - 如果可以,我将如何进行?

  • 我意识到对于年份示例,我可以只做 …

python datetime timedelta python-dateutil

11
推荐指数
3
解决办法
1万
查看次数

如何解析Python中的自由文本时间间隔,从几年到几秒不等?

我想使用Python解析如下所示的自由文本时间间隔:

  • 1秒
  • 2分钟
  • 3小时
  • 4天
  • 5周
  • 6个月
  • 7年

有没有一种无痛的方法可以做到这一点,理想情况下只需调用一个库函数?

我试过了:

  • dateutil.parser.parse(),它可以理解几小时而不是几天或更长时间.
  • mx.DateTime.DateTimeDeltaFrom(),它可以通过几天了解,但在数周或更长的时间内失败,并且默默地(例如,它可能会创建一个长度为0的区间,或者将"2个月"解析为2分钟).

python time

10
推荐指数
2
解决办法
2659
查看次数

Django自定义保存模型

我正在尝试在django的保存模型中执行基本日期计算,请参阅下面的代码:

  class Purchase(models.Model):
    purchase_date = models.DateField()
    purchase_place = models.CharField(verbose_name='Place of Purchase', max_length=255)
    purchaseCategory = models.ForeignKey(PurchaseCategory, verbose_name='Purchase Category')
    cost = models.DecimalField(max_digits=11, decimal_places=2)
    warranty_period_number = models.IntegerField()
    warranty_period_type = models.CharField(max_length=255, choices=(('m', 'Month(s)'), ('y', 'Year(s)')))
    warranty_end_date = models.DateField(editable=False)
    scan = models.CharField(max_length=255)
    alerts = models.BooleanField(verbose_name='Receive Email Alerts?')
    user = models.ForeignKey('auth.User', editable=False)
    created = models.DateTimeField(editable=False, auto_now_add=True)
    modified = models.DateTimeField(editable=False, auto_now=True)

    #custom save model
    def save(self, *args, **kwargs):
        #figure out warranty end date
        if self.warranty_period_type == 'm':
            self.warranty_end_date = self.purchase_date + self.purchase_date.timedelta(months=self.warranty_period_number)
        else:
            self.warranty_end_date = self.purchase_date + …
Run Code Online (Sandbox Code Playgroud)

python django

7
推荐指数
1
解决办法
1万
查看次数

两个日期列之间的年=“ Timedelta”对象没有属性“ item”

下午全部

寻找两个日期到小数点后四个位之间的年数。我的资料:

df_Years = df[
            df['state'].str.contains('Done')

            ][[  
               'maturity_date'
              ]].copy()

df_Years['maturity_date'] = pd.to_datetime(df_Date['maturity_date'])
df_Years['Today'] = pd.to_datetime('today') 
display(df_Years.head(6))


maturity_date   Today
13  2022-12-15  2018-03-21
81  2028-02-15  2018-03-21
82  2045-12-01  2018-03-21
100 2025-08-18  2018-03-21
115 2019-01-16  2018-03-21
116 2018-12-21  2018-03-21

display(df_Years.dtypes)

maturity_date    datetime64[ns]
Today            datetime64[ns]
dtype: object
#Dataframe types
Run Code Online (Sandbox Code Playgroud)

尝试1:

df_Years['Year_To_Maturity'] = df_Years['maturity_date'] - df_Years['Today']
df_Years['Year_To_Maturity'] = df_Years['Year_To_Maturity'].apply(lambda x: float(x.item().days)/365)
Run Code Online (Sandbox Code Playgroud)

错误:

AttributeError: 'Timedelta' object has no attribute 'item'
Run Code Online (Sandbox Code Playgroud)

尝试2:

df_Years['Year_To_Maturity'] = df_Years['maturity_date'] - df_Years['Today']
df_Years['Year_To_Maturity'] = df_Years['Year_To_Maturity'].apply(lambda x: float(x.item().days)/365)
Run Code Online (Sandbox Code Playgroud)

输出:

maturity_date   Today   Year_To_Maturity
13 …
Run Code Online (Sandbox Code Playgroud)

timedelta dataframe pandas

3
推荐指数
1
解决办法
1030
查看次数

标签 统计

python ×4

datetime ×2

timedelta ×2

dataframe ×1

date ×1

django ×1

pandas ×1

python-dateutil ×1

time ×1