如何在C# DateTime类型和JavaScript的Date之间进行转化

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自动进行了时区的转换。

有时间详细研究下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值