在业务开发是经常需要使用到时间,而时间戳是前后端通讯中最常用的传递方式,而前端的表示则通常会将其转化为日期,以及做比较之类的。
时间戳 转换为时间 单位 秒(通常使用的是这个)
public static DateTime StampToDateTime(long mTime)
{
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
mTime *= 10000;
TimeSpan toNow = new TimeSpan(mTime);
return startTime.Add(toNow);
}
// 时间戳 转换为时间 单位 毫秒(unity Editor会使用这个)
public static DateTime StampToDateTimeMilTime(long d)
{
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
var mTime = long.Parse(d + "0000");
TimeSpan toNow = new TimeSpan(mTime);
return startTime.Add(toNow);
}
//判断是时间是否过期
public static bool IsPastDueBySec(long timdStamp)
{
if (timdStamp == -1)
return false;
return timdStamp < DateTimeToStampOutLong(DateTime.Now, true);
}
public static long DateTimeToStampOutLong(DateTime now, bool AccurateToMilliseconds = false)
{
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 当地时区
long timeStamp = (long) (now - startTime).TotalMilliseconds; // 相差毫秒数
if (!AccurateToMilliseconds)
{
timeStamp = timeStamp / 1000;
}
return timeStamp;
}
网友评论