2015-06-19 54 views
0

我是Python的新手。我正在將很多舊的VBA代碼移植到Python中。Python 3.4中的DateTime對象 - 執行FreeBusy查詢Outlook

下面是我在VBA:

Schedule = myRecipient.FreeBusy(Now(), Duration, True) 

調用此FreeBusy方法將返回一個表示收件人的可用性的字符串。

我的主要問題是獲取一個有效的DateTime來交換Now()。

這裏就是我試過最近:

import win32com.client 
import tkinter as tk 
import time 
import pywintypes 


class Application(tk.Frame): 
    def __init__(self, master=None): 
     tk.Frame.__init__(self, master) 
     self.pack() 
     self.createWidgets() 

    def createWidgets(self): 
     self.new = tk.Button(self, text="Outlook", fg="blue",command=self.Connect_Outlook) 
     self.new.pack() 

     self.QUIT = tk.Button(self, text="QUIT", fg="red",command=root.destroy) 
     self.QUIT.pack(side="bottom") 

    def Connect_Outlook(self): 
     outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 

     myRecipient = outlook.CreateRecipient("SomeEmailHere") 
     now_seconds = time.time() 
     now_pytime = pywintypes.Time (now_seconds) 

     print(now_pytime) 
     Schedule = myRecipient.FreeBusy(now_pytime, 30) 

我不斷收到此錯誤「ValueError異常:astimezone()不能被應用到天真的日期時間」。我迷路了,我很感激得到這個DateTime格式正確的方向。

謝謝大家! :)

回答

1

收件人類的FreeBusy方法接受下列參數:

  • 開始[日期] - 的開始日期的忙/閒信息返回的時間。

  • MinPerChar [Long] - 返回的空閒/忙碌字符串中表示的每個字符的分鐘數。

您需要傳遞一個日期對象,例如 - date.today()

+0

謝謝尤金。我嘗試了你的建議;但是我得到這個錯誤。 TypeError:必須是pywintypes時間對象(得到datetime.date)。我研究並嘗試了一些其他的選擇,但沒有奏效。 –

+0

我建議改用Python專家。 –