/// <summary>
/// 获取当前时间戳(毫秒级)
/// </summary>
/// <returns>long</returns>
public static long GetTimestamp()
{
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
long t = (DateTime.Now.Ticks - startTime.Ticks) / 10000; //除10000调整为13位
return t;
}
/// <summary>
/// 获取时间戳(毫秒级)
/// </summary>
/// <returns>long</returns>
public static long GetTimestamp(string time)
{
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
long t = (Convert.ToDateTime(time).Ticks - startTime.Ticks) / 10000; //除10000调整为13位
return t;
}
#region 构造方法
#region 时间戳转本地时间
/// <summary>
/// 时间戳转本时区日期时间
/// </summary>
/// <param name="TimeStamp">时间戳</param>
/// <param name="toMilliseconds">是否精确到毫秒</param>
/// <returns></returns>
public static DateTime StrToDateTime(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();//标准时间转本地时间
}
}
#endregion
#region 获取两个时间之间的时间差(秒)
/// <summary>
/// 传入时间与当前时间差多少秒
/// </summary>
/// <param name="timeA"></param>
/// <returns></returns>
public static string GetTime(DateTime timeA)
{
//timeA 表示需要计算
DateTime timeB = DateTime.Now; //获取当前时间
TimeSpan ts = timeB - timeA; //计算时间差
string time = Math.Floor(ts.TotalSeconds).ToString(); //将时间差转换为秒
if (!String.IsNullOrWhiteSpace(time))
{
return time;
}
else
{
return null;
}
//相差天数:ts.Days.ToString();
//相差小时:ts.Hours.ToString();
//相差分钟:ts.Minutes.ToString();
//相差秒数:ts.Seconds.ToString();
//相差总天数:ts.TotalDays.ToString();
//相差总小时:ts.TotalHours.ToString();
//相差总分钟:ts.TotalMinutes.ToString();
//相差总秒数:ts.TotalSeconds.ToString();
}
#endregion
#endregion
时间戳转换计算
最新推荐文章于 2025-05-01 23:12:03 发布