문제

DateTime을 Universal DateTime으로 변환하여 웹 응용 프로그램에서 메일을 통해 VCAL을 보냅니다. 웹 애플리케이션을 로컬로 운영하면 (인도의 로컬 Sevser) VCAL에서 올바른 시간을 얻습니다. 그러나 Appication Live (미국 서버)를 실행 한 다음 1 시간과 30 분의 차이로 Corret 시간을 얻지 마십시오.

코드 :

Dim result As StringBuilder = New StringBuilder()
        result.AppendFormat("BEGIN:VCALENDAR{0}", System.Environment.NewLine)
        result.AppendFormat("BEGIN:VEVENT{0}", System.Environment.NewLine)
        result.AppendFormat("SUMMARY:{0}{1}", subject, System.Environment.NewLine)
        result.AppendFormat("LOCATION:{0}{1}", location, System.Environment.NewLine)
        result.AppendFormat("DTSTART:{0}{1}", startDate.ToUniversalTime().ToString("yyyyMMdd\THHmmss\Z"), System.Environment.NewLine)
        result.AppendFormat("DTEND:{0}{1}", endDate.ToUniversalTime().ToString("yyyyMMdd\THHmmss\Z"), System.Environment.NewLine)
        result.AppendFormat("DTSTAMP:{0}{1}", DateTime.Now.ToUniversalTime().ToString("yyyyMMdd\THHmmss\Z"), System.Environment.NewLine)
        result.AppendFormat("DESCRIPTION:{0}{1}", description, System.Environment.NewLine)
        result.AppendFormat("END:VEVENT{0}", System.Environment.NewLine)
        result.AppendFormat("END:VCALENDAR{0}", System.Environment.NewLine)
        Return result.ToString()
도움이 되었습니까?

해결책

IST (India Standard Time)는 UTC+5 : 30에 있고 미국 시간대는 UTC-4 (동부)에서 UTC-7 (태평양)에 있기 때문에 1 시간 30 분 (실제로 10 시간)으로 보일 수 있습니다. 서버가 CDT (Central Daylight-Saving) 시간에 실행중인 경우 30 분의 휴무를하지만 AM/PM을 무시합니다.

나는 Vcalendar를 찾았다 www.vcalendar.org 신속하게 당신을 방향을 바꿉니다. PHP 응용 프로그램 인 것 같습니다. 그리고 PHP 매뉴얼을 살펴보면 H 형식은 24 시간 인 것으로 보입니다. 그러나 Double H가 아닌 단일 H가 필요합니다. vcalendar.org의 문서에 대한 PDF는 AWOL입니다 (404- 단순히 404보다 더 유용한 페이지로 리디렉션하지만 여전히 없습니다!).

제안 : 미국에서 서버가 실행중인 시간대를 설정하십시오 (4 개의 주요 시간대와 Sundry Auxilliary than이 있습니다). '1.5 시간 = 10.5 시간 모듈로 12'가설이 그럴듯한 지 확인하십시오. 날짜/시간 형식과 'HH'의 의미를 열심히보십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top