来自:http://www.cnblogs.com/locoy/archive/2006/08/10/473105.html
c#中没有象PHP一样的time()时间戳函数,但有DateTime.Now.Ticks用来计算时间差。
此属性的值为自 0001 年 1 月 1 日午夜 12:00 以来所经过时间以 100 毫微秒为间隔表示时的数字。
dotnet下用DateTime.Now.Ticks能够得到精确的时间,单位是10^-7s。
经过实验,发现
long
a
=
(DateTime.Now.Ticks
-
aa.Ticks)
/
10000000
-
8
*
60
*
60
;
tbxUrl.Text
=
a.ToString();
要减去8*60*60才和time()函数得到的值一样。
什么问题?刚好是8个时区产生的差别。
DateTime aa
=
new
DateTime(
1970
,
1
,
1
);
MessageBox.Show(
"
1970
"
+
aa.Ticks.ToString()
+
"
now
"
+
DateTime.Now.Ticks.ToString());
long
a
=
(DateTime.Now.Ticks
-
aa.Ticks)
/
10000000
-
8
*
60
*
60
;
tbxUrl.Text
=
a.ToString();
同时发现c#里面DataTime有一个属性!DateTime.UtcNow已经考虑了时区问题。
ok~ 使用下面的代码即可
DateTime timeStamp
=
new
DateTime(
1970
,
1
,
1
);
//
得到1970年的时间戳
long
a
=
(DateTime.UtcNow.Ticks
-
timeStamp.Ticks)
/
10000000
;
//
注意这里有时区问题,用now就要减掉8个小时