나는 일년 내내 이벤트를 게시하는 웹 사이트에서 일하고 있습니다. .ICS 다운로드를 제공하여 방문자가 캘린더에 일정을 추가 할 수 있습니다.미래 이벤트 일정을 계획 할 때 일광 절약을 어떻게 처리합니까?
우리는 최근에 방문자가 3 월 11 일 이후에 발생하는 이벤트에 대해 해제 될 시간 (위치에 따라 1 시간 또는 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 중에 일정이 잡히면 해당 날짜에 DST가 변경되면 이전에 입력 한 날짜가 한 시간 늦게 표시됩니다. DST가 아닌 DST의 시간은 물론 다른 방향으로 1 시간 늦어집니다. – Bon
@Bon 나는 NodaTime 사용을 권장합니다. 업데이트 된 DST 일정이 있으며 로컬 시간대로 /에서 변환 할 때 DST가 켜져 있는지 여부에 따라 올바른 오프셋을 자동으로 빼거나 추가합니다. – Yashvit