日期时间与UTC时间戳(毫秒)的互相转换

将日期时间转换为UTC时间戳(毫秒)

``` csharp
/// <summary>
/// 将日期时间转换为UTC时间戳(毫秒)
/// </summary>
/// <param name="_time">要转换的日期时间</param>
/// <returns>UTC时间戳(毫秒)</returns>
public static long ConvertDateTimeToUtc_13(this DateTime _time)
{
    TimeSpan timeSpan = _time.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0);
    return Convert.ToInt64(timeSpan.TotalMilliseconds);
}

### 将UTC时间戳(毫秒)转换为日期时间

/// <summary>
/// 将UTC时间戳转换为日期时间
/// </summary>
/// <param name="_utcTime">要转换的UTC时间戳(毫秒)</param>
/// <returns>日期时间</returns>
public static DateTime ConvertUtcToDateTime(this string _utcTime)
{
    DateTime dt = TimeZoneInfo.ConvertTimeToUtc(new DateTime(1970, 1, 1));
    long lTime = long.Parse(_utcTime + "0000");
    TimeSpan toNow = new TimeSpan(lTime);
    return dt.Add(toNow);
}

## 日期时间与UTC时间戳(秒)的互相转换

### 将日期时间转换为UTC时间戳(秒)

/// <summary>
/// 将日期时间转换为UTC时间戳(秒)
/// </summary>
/// <param name="_time">要转换的日期时间</param>
/// <returns>UTC时间戳(秒)</returns>
public static long ConvertDateTimeToUtc_10(this DateTime _time)
{
    TimeSpan timeSpan = _time.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0);
    return Convert.ToInt64(timeSpan.TotalSeconds);
}

### 将UTC时间戳(秒)转换为日期时间

/// <summary>
/// 将UTC时间戳转换为日期时间
/// </summary>
/// <param name="_utcTime">要转换的UTC时间戳(秒)</param>
/// <returns>日期时间</returns>
public static DateTime ConvertUtcToDateTime_10(this string _utcTime)
{
    DateTime dt = TimeZoneInfo.ConvertTimeToUtc(new DateTime(1970, 1, 1));
    long lTime = long.Parse(_utcTime + "0000000");
    TimeSpan toNow = new TimeSpan(lTime);
    return dt.Add(toNow);
}

## 时间的插值计算

### 计算两个时间戳之间的差值(毫秒)

/// <summary>
/// 计算两个时间戳之间的差值(毫秒)
/// </summary>
/// <param name="_time1">时间戳1</param>
/// <param name="_time2">时间戳2</param>
/// <returns>时间差(毫秒)</returns>
public static int GetDurationTo(this long _time1, long _time2)
{
    long m_Time = _time1 - _time2;
    return (int)m_Time;
}

### 计算两个日期时间之间的差值

/// <summary>
/// 计算两个日期时间之间的差值
/// </summary>
/// <param name="_time1">日期时间1</param>
/// <param name="_time2">日期时间2</param>
/// <returns>时间差</returns>
public static TimeSpan GetDurationTo(this DateTime _time1, DateTime _time2)
{
    TimeSpan span1 = new TimeSpan(_time1.Ticks);
    TimeSpan span2 = new TimeSpan(_time2.Ticks);
    TimeSpan result = span1.Subtract(span2).Duration();

    int hours = result.Hours;               //小时
    int minutes = result.Minutes;           //分钟
    int seconds = result.Seconds;           //秒
    int totalSeconds = result.Seconds + result.Minutes * 60 + result.Hours * 3600;   //总秒数

    return result;
}