2016-02-15 27 views
-3

我們有js代碼轉換datetime具體格式是如下:等價的C#代碼來獲取日期時間格式

var dob=new Date("01/16/1989") 
var ms=(dob.getTime()/1000-dob.getTimeZoneOffset()*60) 

輸出毫秒 - 600912000

它返回的日期時間與一些milliseconds format。不太明白它究竟做了什麼。我試圖複製相同的c#,但是從「日期時間」到「的Int32」越來越

無效的轉換

這裏是我的嘗試:

private static string GetFormatted(DateTime date) 
{ 
    var time = Convert.ToInt32(date.ToUniversalTime())/1000; 
    var timezoneoffset = Convert.ToInt32(TimeZoneInfo.Local.GetUtcOffset(DateTime.UtcNow)) * 60; 
    return Convert.ToString(time - timezoneoffset); 
} 

哪一部分應該我在上面的代碼中更改以獲得與js中相同的結果?

+0

什麼會'毫秒「結果呢? –

+0

'DateTime.Ticks'? – Alex

+0

您能否提供您期望看到的輸入和輸出的清晰示例? – Alex

回答

4

JS getTime返回自1970/01/01以來的毫秒數。所以/ 1000給出了秒數。最後getTimeZoneOffset給出分鐘UTC的差異,但轉換爲C#的時候,當源和比較日期有相同的時區,轉換就可以跳過去,我認爲以下就足夠了:

date.Subtract(new DateTime(1970,1,1)).TotalSeconds 
+0

完美...感謝much .. :) –