以下毫秒为单位
之前获取当天零点的代码如下:
public static long GetCurDayZeroTime(long timeStampMS){var timeStampStart = new DateTime(1970, 1, 1, 8, 0, 0);var now = timeStampStart.AddMilliseconds(timeStampMS);var nowZero = new DateTime(now.Year, now.Month, now.Day);TimeSpan ts = nowZero - timeStampStart;return Convert.ToInt64(ts.TotalMilliseconds);}
Console.WriteLine(GetCurDayZeroTime(1725254429127));
执行结果: 1725206400000
更新后的获取当天零点的代码:
public static long GetDayZeroTime(long timeStampMS){int dayTime = 86400000;int hours = 28800000; // 东八区return (timeStampMS + hours) / dayTime * dayTime - hours;}
Console.WriteLine(GetDayZeroTime(1725254429127));
执行结果: 1725206400000
更简便的方法:
public static long GetDayZeroTime1(long timeStampMS){int dayTime = 86400000;int hours = 28800000; // 东八区return timeStampMS - (timeStampMS + hours) % dayTime;}
Console.WriteLine(GetDayZeroTime1(1725254429127));
执行结果: 1725206400000