0

我正在使用 VCALENDAR 附件。

DateTime end = Convert.ToDateTime(Request.Form["datepicker1"]);
        String timeZone = "Asia/Calcutta";
        StringBuilder sbICSFile = new StringBuilder();
        DateTime dtNow = DateTime.UtcNow;
        //String end=endDate.Text;
        String summary="eAssist : Ticket Id - "+Session["ticket"].ToString();
        String description = txtlong.Text;

        sbICSFile.AppendLine("BEGIN:VCALENDAR");
        sbICSFile.AppendLine("VERSION:2.0");
        sbICSFile.AppendLine("PRODID://ICSTest/");
        sbICSFile.AppendLine("CALSCALE:GREGORIAN");


        //Event
        sbICSFile.AppendLine("BEGIN:VEVENT");
        sbICSFile.AppendLine("DTSTART;TZID=" + timeZone + ":"+dtNow);
        sbICSFile.AppendLine("DTEND;TZID=" + timeZone + ":"+end);
        sbICSFile.AppendLine("SUMMARY:"+summary);
        sbICSFile.AppendLine("DESCRIPTION:"+description);
        sbICSFile.AppendLine("UID:1");
        sbICSFile.AppendLine("SEQUENCE:0");

        sbICSFile.AppendLine("END:VEVENT");
        sbICSFile.AppendLine("END:VCALENDAR");

        Response.ContentType = "text/calendar";
        Response.AddHeader("content-disposition", "attachment; filename=eAssistEvent1.1.ics");
        Response.Write(sbICSFile);
        Response.End();

它正在生成:

BEGIN:VCALENDAR
VERSION:2.0
PRODID://ICSTest/
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTART;TZID=Asia/Calcutta:11/29/2017 6:51:59 AM
DTEND;TZID=Asia/Calcutta:12/3/2017 12:00:00 AM
SUMMARY:eAssist : Ticket Id - 11
DESCRIPTION:HTML Content inside text boxes
UID:1
SEQUENCE:0
END:VEVENT
END:VCALENDAR

但是,当我在 Outlook 上打开附件时,开始日期和结束日期会发生变化(两者都需要当前时间)。

我的托管服务器位于东部时区,我正在从印度访问该应用程序,该应用程序目前仅适用于印度。

如何根据印度语言环境在 Outlook 日历中获取确切的开始和结束日期?

4

1 回答 1

0

我所做的是:

String dtStart = DateTime.Parse(end).ToUniversalTime().ToString("yyyyMMddT080000");
String dtEnd = DateTime.Parse(end).ToUniversalTime().ToString("yyyyMMddT160000");

由于我所有的会议时间都在上午 8 点到下午 4 点之间,所以我将开始和结束时间设置为 080000 和 160000。

于 2017-11-29T09:15:58.793 回答