十、时间服务类

在业务开发是经常需要使用到时间,而时间戳是前后端通讯中最常用的传递方式,而前端的表示则通常会将其转化为日期,以及做比较之类的。

时间戳 转换为时间 单位 秒(通常使用的是这个)
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;
        }

你可能感兴趣的:(十、时间服务类)