私は年間を通じてイベントを投稿するウェブサイトに取り組んでいます。訪問者がカレンダーにイベントを追加できるように.ICSダウンロードを提供しています。将来の予定をスケジュールするときの夏時間の扱い方は?
最近、3月11日以降に発生するイベントについて、ビジターがオフになる時間(その場所に応じてプラスマイナス1時間)を報告しています。基本的に、これはイベントが発生する実際の時間です時間のシフトですが、イベントは調整しないでください特定の時間に予定されていたということです。
この問題を回避するにはどうすればよいですか?時間を足したり引いたりすることによって補う試みはすべて、東海岸または西海岸のいずれかで破壊されました。ここ
可能な関連する質問: https://stackoverflow.com/questions/9484447/scheduling-events-and-daylight-savings-time
UPDATE:ここで私が使用しているコードは次のとおりです。
// Create calendar and add the desired timezone
DDay.iCal.iCalendar iCal = new DDay.iCal.iCalendar();
var targetTimeZone = TimeZoneInfo.FindSystemTimeZoneById(tzid);
iCal.AddTimeZone(targetTimeZone);
// Create the event and add it to the calendar
DDay.iCal.Event evt = iCal.Create<DDay.iCal.Event>();
// Adjust the start/end date by one hour if the dates/times fall under daylight savings in the target timezone
if (targetTimeZone.IsDaylightSavingTime(endDt))
endDt = endDt.AddHours(-1);
evt.DTEnd = new iCalDateTime(endDt, tzid);
if (targetTimeZone.IsDaylightSavingTime(startDt))
startDt = startDt.AddHours(-1);
evt.DTStart = new iCalDateTime(startDt, tzid);
これは数年前ですが、あなたは1時間の矛盾がありますが、私は今対処しています。 DSTでないイベントが予定されている場合は、DSTがその年の後に変更されると、以前に入力された日付が1時間表示されます。 DSTではなく、DSTでの時間はもちろん、他の方向から1時間ずれています。 – Bon
@Bon私はNodaTimeの使用をお勧めします。更新されたDSTスケジュールがあり、ローカルタイムゾーンに/から変換すると、DSTがオンかオフかに基づいて正しいオフセットが自動的に減算/追加されます。 – Yashvit