1
我已發佈到DDay iCal圖書館的論壇,但想過在這裏發佈它以防萬一任何用戶遇到這種情況。來自我的論壇帖子:DDay iCal w /非DST時區
我碰到過在iCal文件中如何生成時區部分的錯誤 - 添加不支持夏令時的時區創建一個空的VTIMEZONE部分,這打破了iCal。快速瀏覽一下代碼可以讓我相信該部分是由TimeZoneInfo.GetAdjustmentRules()返回的集合生成的,對於不觀察DST的時區是空的。
帖子底部的代碼應該證明這個問題。
如果這不是一個錯誤(我不相信它是!),我非常感謝指導,讓這些工作。
void Main()
{
foreach (var tz in TimeZoneInfo.GetSystemTimeZones())
{
var cal = GetCal(tz);
Console.WriteLine(tz.Id + " :: " + tz.SupportsDaylightSavingTime + " :: " + cal.TimeZones.First().ID);
}
}
iCalendar GetCal(TimeZoneInfo timeZone)
{
var calendar = new iCalendar();
calendar.AddChild(iCalTimeZone.FromSystemTimeZone(timeZone));
var @event = new Event
{
Name = "VEVENT",
DTStart = new iCalDateTime(DateTime.Now, timeZone.Id),
DTEnd = new iCalDateTime(DateTime.Now + TimeSpan.FromHours(1))
};
calendar.Events.Add(@event);
return calendar;
}