通过Microsoft CDO发送的日历项目的格式与通过Exchange直接发送的日历项目的格式不同。在Android 4.0中打开时,CDO格式化会导致约会处于错误的时间。
以下示例摘自运行ICS的Droiz Razr上收到的.ics文件。
这两个约会都是从Outlook 2011客户端发送的。我尝试了本机Android邮件客户端和K-9邮件客户端。邮件客户端(通常)不会处理该文件,只是将其传递给操作系统。看来该对象是由日历应用程序打开的。 (我不清楚为什么有些Outlook客户端通过CDO连接,以及为什么有些通过Exchange直接连接,因为所有桌面都在同一个局域网上。)
示例1,CDO:
PRODID:Microsoft Exchange的Microsoft CDO ...
DTSTART; TZID =“(GMT-08.00)太平洋时间(美国和加拿大)”:20120921T110000 ...
示例2,EXchange 2007:
PRODID:Microsoft Exchange Server 2007 ...
DTSTART; TZID =太平洋标准时间:20120921T110000 ...
在这两种情况下,我都在CST,而服务器在PST。 但是,示例1在日历中提前2小时显示(似乎忽略或不理解TZID设置),而示例2显示正确。
这似乎与时区的不同格式有关。似乎Android无法识别CDO中的DTSTART格式并假设它是本地时间。
是否有补丁或修补Android的方法以便正确解释时区?
提前致谢
DJ