如何在C# DateTime類型和JavaScript的Date之間進行轉化

來源:互聯網
上載者:User
MONO中文論壇上的地址: http://www.sinoprise.cn/showtopic-242.aspx

在Javascript中是以毫秒為單位對時間進行記錄的,並且起始時間是1970-1-1 0:0:0,這個是時間UTC(格林威治時間的0點,在中國,應該是1970-1-1 8:0:0 ,因為中國是東八區,在格林威治時間的0點上加上8個小時)。而C#的時間是以Ticks為單位進行記錄的,直譯就是CPU的時間“滴答”,是一個比毫秒 還小的單位。在這兩者之間進行轉化,需要注意起始時間的轉換和時區的轉換,一下代碼可是實現由C#的時間到Javascript的時間的轉換:

引用:

        public long MilliTimeStamp(DateTime TheDate)
        {
            DateTime d1 = new DateTime(1970, 1, 1);
            DateTime d2 = TheDate.ToUniversalTime();
            TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);

            return (long)ts.TotalMilliseconds;
        }

注意:

TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
不能寫成:

TimeSpan ts = d2 - d1.Ticks;

如果以第二種寫法,傳遞到Javascript中的時間會在東八區的基礎上再加上8小時,我的測試時間是11:57分,在JavaScript中列印出來後,是19:57分。
用第一種寫法,DotNet Framework自動進行了時區的轉換。

有時間詳細研究下。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.