日期时间与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;
}