using
System;
namespace zeal.util
{
public class unixTimestamp
{
protected static readonly DateTime unixTPStart =
TimeZone.CurrentTimeZone.ToLocalTime( new DateTime( 1970 , 1 , 1 ));
public static long toUTP(DateTime dt)
{
TimeSpan toNow = dt.Subtract(unixTPStart);
return ( long )Math.Round(toNow.TotalSeconds);
}
public static DateTime fromUTP( long tp)
{
return unixTPStart.Add( new TimeSpan(tp * 10000000 ));
}
}
}
namespace zeal.util
{
public class unixTimestamp
{
protected static readonly DateTime unixTPStart =
TimeZone.CurrentTimeZone.ToLocalTime( new DateTime( 1970 , 1 , 1 ));
public static long toUTP(DateTime dt)
{
TimeSpan toNow = dt.Subtract(unixTPStart);
return ( long )Math.Round(toNow.TotalSeconds);
}
public static DateTime fromUTP( long tp)
{
return unixTPStart.Add( new TimeSpan(tp * 10000000 ));
}
}
}
C# 中的 DateTime 值类型表示值范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间;而 Unix 的时间戳则表示的是自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。 C# 中似乎并没有内置的方法来完成两者之间的转换。