将Outlook时间转换为字符串

时间:2018-11-19 14:14:35

标签: python datetime time win32com

我正在使用win32com解析硬盘驱动器上的Outlooks msg文件。除发送日期外,其他一切正常。我在wxPython列表框中有电子邮件列表,当您单击电子邮件时,我想在文本框中填充日期。当我尝试将msg.SentOn从时间类型转换为字符串类型时,出现TypeError。我相信它正在寻找时间戳,而且我不确定如何从Pytime到达那里。

def onListBox(self, event):

    attachList = []
    self.attachList.Clear()
    outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
    self.email = event.GetEventObject().GetStringSelection()
    if self.toFrom == 0:
        fileName = "C:\Users\onp1ldy\Desktop\EMAILS\emails_Sent\\" + self.email
    else:
        fileName = "C:\Users\onp1ldy\Desktop\EMAILS\emails\\" + self.email
    msg = outlook.OpenSharedItem(fileName)
    #print msg.SenderName
    #print msg.SenderEmailAddress
    print type(msg.SentOn)
    print msg.SentOn
    newDate = time.strftime('%m/%d/%Y %H:%M:%S', msg.SentOn)
    print newDate

输出:

<type 'time'>
Traceback (most recent call last):
  File  line 181, in onListBox
12/04/17 20:43:49
    newDate = time.strftime('%m/%d/%Y %H:%M:%S', msg.SentOn)
TypeError: argument must be 9-item sequence, not time

有人可以帮助进行此转换吗?

1 个答案:

答案 0 :(得分:0)

经过一番搜索,我发现了Pytime。这表明pytime转换为与时间模块兼容的int。

time.strftime("%#c", time.localtime(int(timeObject)))