我不具备解析 vCalendar 文件的时区转换方面的专业知识 - 提取一些信息很简单,但尝试解决考虑时区和夏令时的开始和结束时间并不容易,而且没有必要重新发明轮子。
有谁知道您可以将 .ICS 文件传递到其中并返回各种信息的函数库?
例如:
GetStartTimeCorrectedForMyLocalTimezone("c:\c192837.ics")
将在我的本地时区返回事件的开始时间。
我还没有尝试过,但在以下位置有库:http:
//sourceforge.net/projects/icalparser/和
http://www.ddaysoftware.com/Pages/Projects/DDay.iCal/
在页面http://csharpdotnet-aditikothari.blogspot.de/2013/01/ics-fileicalendar-attached-with-email.html上有一些关于如何手动解析格式的信息。
但是,如果您的主要问题是时区,那么如果我是正确的,那么时间都是 ics 中的 UTC
DateTime localTime = DateTime.SpecifyKind(DateTime.Parse(strDate),
DateTimeKind.UTC).ToLocalTime();