캘린더 시간대를 사용하여 문제를 해결했습니다. 기본적으로 Google 캘린더에는 시간대 정보가 있습니다. 나는 차 달력에서 시간대 정보를 검색 한 후 Exchange 계정에 작업을 저장하기 전에, 나는 우선이 코드는 여부를 작업으로 인해 날짜가 현지 시간에 있음을 알 수
if (task.Due.Value.Kind == DateTimeKind.Local)
{
dueDateUTC = task.Due.Value.ToUniversalTime();
unspecifiedKindDate = new DateTime(dueDateUTC.Year, dueDateUTC.Month, dueDateUTC.Day);
dueDateUTC = TimeZoneInfo.ConvertTime(unspecifiedKindDate, Utility.OlsonTimeZoneToTimeZoneInfo(timezone), TimeZoneInfo.Utc);
}
C# 코드 다음과 같이 UTC로 인해 날짜를 변환 영역 또는 아닙니다. 현지 시간대 일 경우 기한이 UTC로 변환됩니다. UTC로 변환 후, 지정되지 않은 종류의 날짜 개체가이 지정되지 않은 종류의 날짜가 다시이 "dueDateUTC"이제 코드
dueDateUTC = TimeZoneInfo.ConvertTime(unspecifiedKindDate, Utility.OlsonTimeZoneToTimeZoneInfo(timezone), TimeZoneInfo.Utc);
에게 다음의 도움으로 UTC로 변환됩니다
unspecifiedKindDate = new DateTime(dueDateUTC.Year, dueDateUTC.Month, dueDateUTC.Day);
다음 코드를 통해 생성된다 개체는 작업 정보를 Exchange 계정에 저장하는 데 사용됩니다. 작업 저장시 Exchange 서버는 dueDateUTC를 사서함 시간대로 자동 변환합니다. :)
제이슨, 저는 모든 시간대의 모든 교환 사서함에 대한 일반 응용 프로그램을 작성하고 있습니다. 그래서 나는 이전의 시간대를 모른다. –
여전히 고려 사항입니다. Google 내보내기에서 값을 확인해야합니다. UTC 또는 일부 시간대입니까? 관리 API는 실행중인 컴퓨터의 현지 표준 시간대를 기본으로하며 설정 한 모든 시간 값은 마치 해당 시간대 인 것처럼 번역됩니다. –