0

日時をユニバーサル日時に変換して、Webアプリケーションでメールを介してvcalを送信します。Web アプリケーションをローカル (インドのローカル sevser) で実行すると、vcal で正しい時刻が取得されます。しかし、アプリケーションをライブ(米国のサーバー)で実行すると、1時間半の差で正確な時間が得られません.私に提案してください.

コード:

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()
4

1 に答える 1

1

IST(インド標準時)はUTC + 5:30であり、米国のタイムゾーンはUTC-4(東部)からUTC-7(太平洋)であるため、1時間半(実際には10時間)離れているように見える可能性があります。サーバーがCentralDaylight-Saving(CDT)時間で実行されている場合は、30分オフですが、am /pmは無視されます。

www.vcalendar.orgでvcalendarを見つけました。これにより、すばやくリダイレ​​クトされます。PHPアプリケーションのようです。PHPのマニュアルを見ると、H形式は24時間制であるように見えます。ただし、ダブルHではなくシングルHが必要です。vcalendar.orgのドキュメントのPDFはAWOLです(404-単に404よりも便利なページにリダイレクトされますが、まだありません!)。

提案:サーバーが米国で実行されているタイムゾーンを確立します(4つの主要なタイムゾーンとさまざまな補助タイムゾーンがあります)。'1.5時間=10.5時間モジュロ12'仮説が妥当かどうかを確認します。そして、日付/時刻の形式と「HH」の意味をよく見てください。

于 2009-05-20T05:38:23.850 に答える