明确一点:unix时间戳是从1970年1月1日的午夜开始所经过的时间
/// <summary>
/// 将c# 本地DateTime时间格式转换为Unix时间戳格式 (毫秒)
/// </summary>
/// <param name="time">时间</param>
/// <returns>long</returns>
public static long ConvertLocalDateTimeToUtcTimestamp(System.DateTime localTime)
{
DateTime utcTime = TimeZoneInfo.ConvertTimeToUtc(localTime);
DateTime utcStartTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
TimeSpan ts = utcTime - utcStartTime;
return Convert.ToInt64(ts.TotalMilliseconds);
}
/// <summary>
/// Unix时间戳转为C#本地DateTime格式时间 (毫秒)
/// </summary>
/// <param name=”timeStamp”></param>
/// <returns></returns>
public static DateTime ConvertUtcTimestampToLocalDateTime(long utcTimeStamp)
{
DateTime utcStartTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
DateTime utcTime = utcStartTime.AddMilliseconds(utcTimeStamp);
return TimeZoneInfo.ConvertTimeFromUtc(utcTime, TimeZoneInfo.Local);
}