我想更改outlook creationTime格式。
for message in sub.Items:
subject = message.subject
body = message.body
sendTime = message.CreationTime
我收到使用creationTime
的消息message.CreationTime
。
当我打印sendTime
时,结果是04/15/16 17:22:29。
所以我使用strftime
来更改日期格式,但它不起作用。
我在源代码中导入了这样的库。
import win32com.client
from datetime import datetime, date, time
import string
import pymysql
但发生了错误:
Traceback (most recent call last):
File "D:\20_log\outlook\outlook.py", line 164, in <module> main()
File "D:\20_log\outlook\outlook.py", line 161, in main get_outlook_message()
File "D:\20_log\outlook\outlook.py", line 56, in get_outlook_message
sendTime.strftime('%H:%M:%S')
AttributeError: strftime
如何更改展示creationTime
格式?
答案 0 :(得分:1)
MailItem.CreationTime
是DateTime值,它没有任何格式 - 它不是字符串。在低级别(COM),它是一个8字节的浮点数,整数是自1/1/1900
以来的天数,小数部分是一天的时间。
答案 1 :(得分:1)
由于(根据您的评论)sendTime
是一个字符串,您可以使用time.strptime()
将其解析为time.struct_time
,然后可以像time.strftime()
那样使用import time
sendTime = '04/15/16 17:22:29' # example value of message.CreationTime
# parse sendTime into a time.struct_time
sendTime_st = time.strptime(sendTime, '%m/%d/%y %H:%M:%S')
# format the returned struct_time into the desired format
print(time.strftime('%H:%M:%S', sendTime_st))
# another example
print(time.strftime('%a, %m-%b-%y at %H:%M:%S', sendTime_st))
进行格式化'试图这样做。
17:22:29
Fri, 04-Apr-16 at 17:22:29
输出:
ReadOnlyCollection<IWebElement> topItem = driver.FindElements(By.XPath("//iframe[@src='Edit.aspx']"));
Utility.Instance.WaitUntilFrameLoaded(topItem[0]);
Thread.Sleep(2000);
ReadOnlyCollection<IWebElement> elements = Utility.Instance.WaitUnitElementsAppearsByXPath("//div[@id='ctlPanel']//table/tbody/tr[2]//iframe[@src='javascript:true;']");
Thread.Sleep(1000);
foreach(IWebElement eleFrame in elements)
{
Utility.Instance.WaitUntilFrameLoaded(eleFrame);
IWebElement body = driver.FindElement(By.TagName("body"));
body.Click();
driver.SwitchTo().DefaultContent();
Utility.Instance.WaitUntilFrameLoaded(topItem[0]);
}