Python 3.4中的DateTime对象 - 执行FreeBusy查询Outlook

时间:2015-06-19 23:03:19

标签: python datetime outlook

我是Python的新手。我正在将大量旧的VBA代码移植到Python中。

这是我在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 个答案:

答案 0 :(得分:1)

Recipient类的FreeBusy方法接受以下参数:

  • 开始[日期] - 返回的忙/闲信息期的开始日期。

  • MinPerChar [Long] - 返回的忙/闲字符串中每个字符的分钟数。

您需要传递日期对象,例如 - function init(){ document.addEventListener('deviceReady', onDeviceReady, false); } function onDeviceReady(){ document.getElementById('submitButton').addEventListener("click", startApp,false); } function startApp(){ //alert('switching page'); window.location= 'dashboard.html'; }