我正在使用C#代碼來生成.ics文件以將我的事件添加到outlook calander。根據.Ical文件的時區設置開始時間和結束時間?
.ics文件正在使用以下代碼生成。 但我這裏的問題是根據時區設置開始/結束時間。對於考試我有新加坡標準時間開始/結束時間.ics文件。我希望如果有人在新加坡開檔,那麼它應該顯示新加坡時間,如果有人在印度開門,那麼它應該顯示印度時間。像2012-04-20 13:00這段時間在印度將是10:30 am所以.ics文件顯示顯示10:30作爲開始時間,如果.ics文件在印度選擇。
我希望開始和結束時間應該根據系統的時區。所以下面的代碼有什麼問題,它不起作用。
請幫忙。
代碼:
DateTime StartTime = DateTime.Parse("2012-04-20 13:00:00.000Z");//Singapore Standard Time
DateTime EndTime = DateTime.Parse("2012-04-20 14:00:00.000Z");//Singapore Standard Time
bool UseAlarm = true;
StringBuilder sb = new StringBuilder(450);
sb.Append("BEGIN:VCALENDAR\n");
sb.Append("BEGIN:VEVENT\n\n");
sb.Append("DTSTART:");
sb.Append(StartTime.ToString("yyyyMMdd\\THHmmss\\Z"));
sb.Append("\nDTEND:");
sb.Append(EndTime.ToString("yyyyMMdd\\THHmmss\\Z"));
sb.Append("\nLOCATION:");
sb.Append("Location");
sb.Append("\nCATEGORIES:");
sb.Append(string.Empty);
sb.Append("\nTRANSP:OPAQUE\n");
sb.Append("SEQUENCE:0\n");
sb.AppendFormat("UID:RFCALITEM{0}\n", DateTime.Now.Ticks);
sb.Append("DTSTAMP:");
sb.Append(StartTime.ToString("yyyyMMdd\\THHmmss\\Z"));
sb.Append("\nX-ALT-DESC;FMTTYPE=text/html:");//
sb.Append("This is just for testing.");
sb.Append("\nSUMMARY:");
sb.Append("Title:Test ICS File");
sb.Append("\n\nPRIORITY:");
sb.Append(5);
sb.Append("\nCLASS:PUBLIC\n");
if (UseAlarm)
{
sb.Append("BEGIN:VALARM\n");
sb.Append("TRIGGER:PT15M\n");
sb.Append("ACTION:DISPLAY\n");
sb.Append("DESCRIPTION:Reminder\n");
sb.Append("PRIORITY:5\n");
sb.Append("END:VALARM\n");
}
sb.Append("END:VEVENT\n");
sb.Append("END:VCALENDAR");