不同的日期時間我知道解決大多數人的建議是我的對象的屬性從TDateTime類型爲String改變,但我沒有訪問所有的源代碼的Web服務應用程序,所以有些情況下我無法做到這一點。所以我寧願確保我照顧這個問題。德爾福Web服務會從.NET MVC應用程序
簡單地說,我有一個.NET MVC應用程序調用寫於2005年德爾福獲得一個約會對象,包括起始日期/時間和結束日期/時間服務應用程序的Web方法。用戶可以對約會進行更改,然後MVC應用程序調用另一個Web方法,傳入修改的約會對象,供服務應用程序存儲。
的TAppointemnt的開始時間和結束時間屬性在Delphi定義爲TDateTime類型。它們以xs:dateTime的形式出現在WSDL中。 Visual Studio在Reference.cs中將它們創建爲System.DateTime。
用Delphi使用Web應用程序調試器,以及MVC應用程序的端點設置爲Web服務EXE,我可以逐步在實時兩個應用程序。我所看到的是,發送和接收的約會對象的開始時間和結束時間的屬性是相同的從Web服務到.NET MVC過去了,但時代在13小時內從.NET MVC傳遞給德爾福調整時網絡服務。
雖然我理解.NET做一些內部調整時區,當客戶機和服務器在不同的時區只應是顯而易見的。在我的情況下,客戶端瀏覽器,.NET MVC應用程序和Delphi服務應用程序是在同一個。事實上,它們都運行在同一臺機器上,所以我爲什麼會出現這種差異而感到不知所措。
它看起來像他們在編碼XML不同的日期時間...
從德爾福服務應用到.NET MVC應用程序的響應:
<StartTime xsi:type="xsd:dateTime">2012-10-29T08:00:00.000+13:00</StartTime><EndTime xsi:type="xsd:dateTime">2012-10-29T09:15:00.000+13:00</EndTime>
從.NET MVC應用程序的POST到德爾福服務的應用程序:
<StartTime xsi:type="xsd:dateTime">2012-10-29T08:00:00</StartTime><EndTime xsi:type="xsd:dateTime">2012-10-29T09:15:00</EndTime>
13剛剛變成了一個更邪惡的數字。 –