0
我在客戶端從.NET上放置了UTC .NET/JSON日期。當我運行以下命令:轉換時刻UTC到當地日期時間
moment(value.Planet.when).utc()
返回從Web服務日期:
"/Date(1469271646000)/"
我得到的_D參數顯示當前準確的UTC日期與GMT + 0300上右側的日期。
我想將此時間轉換爲用戶機器上的本地時間,以及我所做的事情,我總是將時間縮短3個小時。
我這樣做:
moment(value.Planet.when).local().format('YYYY-MM-DD HH:mm:ss')
,我也得到了相同的日期時間作爲UTC。我不明白我怎麼能得到相對於當地時間的UTC時間。我檢查了那個momentjs對象的確是UTC。
我認爲,如果我通過moment.utc()函數從web服務(最初來自數據庫)獲取UTC日期,我可以運行local()函數,我會得到準確的時間相對於我的區域,但它不起作用。
我只是把一個新的記錄,我得到太陽七月24 2016 02:24:15 GMT + 0300如果我使用你的代碼,但我當地的時間是5:24而不是2:24。該web服務返回「/日期(1469316255000)/」 - 所以我做錯了。 –
時間戳「1469316255000」對應於「2016-07-23T23:24:15.000Z」。您可以在純JS或許多網站上查看,如[epochconverter.com](http://www.epochconverter.com)。您的輸出會在三個小時後顯示,因爲您的本地時區偏移值爲「+03:00」。如果你預計它甚至比這還多三個小時,那麼我會說你的web服務發送了錯誤的數據。也許你是雙重糾正。 –
例如,假設您的後端是.NET,如果您在數據庫中有基於UTC的值,但在檢索它們時不使用DateTimeKind.Utc(使用DateTime.SpecifyKind),那麼它們將具有' DateTimeKind.Unspecified'默認情況下。 ASP.Net將在序列化期間將這些視爲*本地時間*,並將減去服務器的本地時區偏移量。 –