Problemă cu data de început și sfârșit VCALENDAR la deschiderea din OUTLOOK în aplicația C#.net (Programare, C#, Asp.Net, Outlook, Vcalendar)

SubhenduGN a intrebat.

Lucrez cu atașamentul 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();

Acesta generează :

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

Dar când deschid atașamentul în Outlook, data de început și de sfârșit se schimbă (întotdeauna se ia ora curentă pentru ambele).

Serverul meu de găzduire este situat în fusul orar de est și accesez această aplicație din India și această aplicație este destinată doar pentru India de acum.

Cum se poate obține data exactă de început și de sfârșit în calendarul Outlook pe baza zonei locale din India?

Comentarii

1 răspunsuri
SubhenduGN

Ceea ce am făcut este:

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

Deoarece toate întâlnirile mele sunt între 8 AM și 4 PM, de aceea am setat 080000 și 160000 pentru ora de început și de sfârșit.