/// <summary>
/// 本时区日期时间转时间戳
/// </summary>
/// <param name="datetime">时间</param>
/// <param name="toMilliseconds">是否精确到毫秒</param>
/// <returns></returns>
public static long ToUnixTimeStamp(this DateTime datetime, bool toMilliseconds = true)
{
DateTime beginTimeUtc = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);//标准时间
DateTime timeUTC = datetime.ToUniversalTime();//转成标准时间
TimeSpan ts = (timeUTC - beginTimeUtc);//当前标准时间减去标准起始时间
if (toMilliseconds)
{
return (Int64)ts.TotalMilliseconds;//精确到毫秒
}
return (Int64)ts.TotalSeconds;//精确到秒
}
/// <summary>
/// 时间戳转本时区日期时间
/// </summary>
/// <param name="TimeStamp"></param>
/// <param name="toMilliseconds">是否精确到毫秒</param>
/// <returns></returns>
public static DateTime ToDateTime( this long TimeStamp, bool toMilliseconds = true)
{
DateTime startTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);//标准时间
if (toMilliseconds)
{
return startTime.AddTicks(TimeStamp * 10000).ToLocalTime();//标准时间转本地时间
}
else
{
return startTime.AddTicks(TimeStamp * 10000000).ToLocalTime();//标准时间转本地时间
}
}