2009-04-16 16 views
0

我通過郵件在Web應用程序發送一個vcal,將datetime轉換爲通用日期時間。 如果我在本地運行web應用程序(本地sevser在印度)我得到正確的時間在我的vcal。 但運行Appication現場(服務器在美國),然後不得到1小時和半小時的差異correct時間。請建議我。從UniversalDateTime沒有得到正確的時間

代碼:

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

回答

1

由於IST(印度標準時間)是UTC + 5:30和美國時區的UTC-4(東)至UTC-7(太平洋),你可以如果服務器在中央夏令時(CDT)時間內運行,似乎會關閉一個半小時(實際上,關閉十個半小時,但忽略上午/下午)。

我發現vcalendar在www.vcalendar.org,它迅速重定向你。它似乎是一個PHP應用程序。看看PHP手冊,看起來H格式是24小時制;但它需要一個H,而不是一個雙H.在vcalendar.org上的文檔PDF是AWOL(404 - 除了它重定向到一個更有用的頁面,而不是簡單的404,但它仍然不存在!)。

建議:確定您的服務器在美國運行的時區(有4個主時區,以及各種輔助時區)。檢查'1.5小時= 10.5小時模12'假設是否合理。並注意日期/時間格式和'HH'的含義。

+0

他的代碼看起來像.NET對我來說... – 2009-07-13 15:13:32