#方法
public class DateTime_TimeStamp
{
public static long GetUnixTimeStamp(DateTime dt)
{
DateTime dtStart = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(1970, 1, 1, 0, 0, 0), TimeZoneInfo.Local);
long timeStamp = Convert.ToInt32((dt - dtStart).TotalSeconds);
return timeStamp;
}
public static long GetUnixTimeStamp1(DateTime dt)
{
DateTime dtStart = new DateTime(1970, 1, 1, 8, 0, 0);
long timeStamp = Convert.ToInt32((dt - dtStart).TotalSeconds);
return timeStamp;
}
public static long GetUnixTimeStamp2(DateTime dt)
{
return (dt.ToUniversalTime().Ticks- 621355968000000000) / 10000000;
}
public static DateTime GetDateTimeFromUnixTimeStamp(long timeStamp)
{
DateTime dtStart = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(1970, 1, 1,0,0,0),TimeZoneInfo.Local);
long lTime = ((long)timeStamp * 10000000);
TimeSpan toNow = new TimeSpan(lTime);
DateTime targetDt = dtStart.Add(toNow);
return targetDt;
}
}
#调用
static void Main(string[] args)
{
long unixTimeStamp = DateTime_TimeStamp.GetUnixTimeStamp(DateTime.Now);
Console.WriteLine(unixTimeStamp);
DateTime dt = DateTime_TimeStamp.GetDateTimeFromUnixTimeStamp(unixTimeStamp);
Console.WriteLine(dt.ToString());
}