在 python 中使用来自 win32com 的 DateAdd 函数

Usage of DateAdd function from win32com in python

我在 python3 中通过 outlook 发送邮件时遇到了这个问题:Send Outlook email using python win32com and flag as Follow-up

但是我卡住了,当我尝试对 mail.FlagDueBy 使用 DateAdd 函数时,我无法真正找到一个如何正确使用它。

我试过: mail.FlagDueBy = win32.DateAdd("d", 3, win32.Date)

mail.FlagDueBy = DateAdd("d", 3, win32.Date)

两者都导致错误(例如) AttributeError: module 'win32com.client' has no attribute 'DateAdd'

我做错了什么?我正在使用 python 3.8.8

代码示例:


outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
#attachment1 = "x:\report.htm"
attachment1 = "c:\installAgent.log"
mail.Attachments.Add(Source=attachment1)
mail.To = "obama@hotmail.com"   
mail.Subject = "test"
mail.HtmlBody = '<h2>HTML Message body</h2>' #this field is optional
mail.FlagRequest = "Follow up";
mail.FlagDueBy = DateAdd("d", 3, Date)
mail.Display(True)

DateAdd 是一个 VBA 函数,它 returns 一个变体(日期),其中包含添加了指定时间间隔的日期。您只能使用 DateAdd 函数从 VBA 中的日期添加或减去指定的时间间隔,而不是 Python.

Adding days to a date in Python 线程解释了如何在 Python 中添加日期间隔,例如:

import datetime

date_1 = datetime.datetime.strptime(start_date, "%m/%d/%y")

end_date = date_1 + datetime.timedelta(days=10)