Beispiel #1
0
 public LoggerConfig()
 {
     outputFolder  = Path.Combine(Path.Combine(Path.GetFullPath("."), "Assets"));
     bufferLength  = 50;
     timeStampType = TimeStampType.realtimeSinceStartup;
     dataBuffer    = new DataBuffer();
 }
        /// <summary>
        /// 时间戳转DateTime
        /// </summary>
        /// <param name="timeStamp">时间戳</param>
        /// <param name="type">类型:秒,毫秒</param>
        /// <returns></returns>
        public static DateTime TimeStampToDateTime(string timeStamp, TimeStampType type = TimeStampType.秒)
        {
            var startTime = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(1970, 1, 1), TimeZoneInfo.Local).ToLocalTime();
            var time      = long.Parse(timeStamp);

            return(type switch
            {
                TimeStampType.秒 => startTime.AddSeconds(time),
                TimeStampType.毫秒 => startTime.AddMilliseconds(time),
                _ => startTime.AddSeconds(time)
            });
 /// <summary>
 /// 获取指定时间戳所对应的时间
 /// </summary>
 /// <param name="timestamp">时间戳</param>
 /// <param name="timeStampType">时间戳类型</param>
 /// <returns>实际时间</returns>
 public static DateTime GetDateTime(long timestamp, TimeStampType timeStampType = TimeStampType.Seconds)
 {
     if (timeStampType == TimeStampType.Seconds)
     {
         return(new DateTime(1970, 1, 1).AddHours(8).AddSeconds(timestamp));
     }
     else
     {
         return(new DateTime(1970, 1, 1).AddHours(8).AddMilliseconds(timestamp));
     }
 }
Beispiel #4
0
 public DateTime GetTimeStampByType(TimeStampType timeStampType = TimeStampType.Start)
 {
     if (timeStampType == TimeStampType.Start) return Start;
     if (timeStampType == TimeStampType.End)
     {
         return End;
     }
     if (timeStampType == TimeStampType.Middle)
     {
         return Start + TimeSpan.FromMinutes((End - Start).TotalMinutes/2);
     }
     return Start;
 }
        /// <summary>
        /// 获取指定时间的时间戳
        /// </summary>
        /// <param name="datetime">指定时间</param>
        /// <param name="timeStampType">所需时间戳类型</param>
        /// <returns>时间戳</returns>
        public static long GetTime(DateTime datetime, TimeStampType timeStampType = TimeStampType.Seconds)
        {
            TimeSpan timeSpan = datetime - new DateTime(1970, 1, 1).AddHours(8);

            if (timeStampType == TimeStampType.Seconds)
            {
                return(Convert.ToInt64(timeSpan.TotalSeconds));
            }
            else
            {
                return(Convert.ToInt64(timeSpan.TotalMilliseconds));
            }
        }
Beispiel #6
0
        public Log(string fileName, LocationLog locationLog = LocationLog.LogFolder, TimeStampType timestampType = TimeStampType.JustTime, FileNameSuffixLog suffixLog = FileNameSuffixLog.Date, int maxLogs = 10)
        {
            TimeStampType  = timestampType;
            LocationLog    = locationLog;
            FileNameSuffix = suffixLog;
            _maxLogs       = maxLogs;

            if (!string.IsNullOrEmpty(Path.GetDirectoryName(fileName)))
            {
                LocationLog = LocationLog.Custom;
                _folder     = Path.GetDirectoryName(fileName);
                _filename   = Path.GetFileNameWithoutExtension(fileName);
            }
            else
            {
                _filename = Path.GetFileNameWithoutExtension(fileName);
                switch (locationLog)
                {
                case LocationLog.Custom:
                case LocationLog.SameFolder:
                    _folder = ".";
                    break;

                case LocationLog.LogFolder:
                    _folder = "./log";
                    break;

                case LocationLog.ProgramDataFolder:
                    _folder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), _vendor, _system);
                    break;
                }
                _folder = Path.GetFullPath(_folder);
            }
            LastException = "";
            if (!Directory.Exists(_folder))
            {
                try
                {
                    Directory.CreateDirectory(_folder);
                }
                catch (Exception e)
                {
                    LastException = e.Message;
                    throw new LogException("Erro ao criar diretório " + _folder, e);
                }
                if (!Directory.Exists(_folder))
                {
                    throw new LogException("Diretório " + _folder + " não foi encontrado");
                }
            }
        }
Beispiel #7
0
        public TimeType convertTime(TimeStampType origType)
        {
            TimeType newType;

            newType.c_seconds = origType.time.c_seconds;
            newType.seconds   = origType.time.seconds;
            newType.minutes   = origType.time.minutes;
            newType.hours     = origType.time.hours;
            newType.day       = origType.date.day;
            newType.month     = origType.date.month;
            newType.year      = origType.date.year;

            return(newType);
        }
Beispiel #8
0
        /// <summary>
        /// 将时间戳转换为datetime
        /// </summary>
        /// <param name="stamp"></param>
        /// <param name="timeStampType"></param>
        /// <returns></returns>
        public static DateTime ConvertStampToDateTime(long stamp, TimeStampType timeStampType = TimeStampType.TenLength)
        {
            TimeSpan ts = default;

            if (timeStampType == TimeStampType.TenLength)
            {
                ts = new TimeSpan((stamp * 1000 * 10000) + 621355968000000000);
            }
            else if (timeStampType == TimeStampType.ThirteenLength)
            {
                ts = new TimeSpan((stamp * 10000) + 621355968000000000);
            }

            return(new DateTime(ts.Ticks));
        }
Beispiel #9
0
 public DateTime GetTimeStampByType(TimeStampType timeStampType = TimeStampType.Start)
 {
     if (timeStampType == TimeStampType.Start)
     {
         return(Start);
     }
     if (timeStampType == TimeStampType.End)
     {
         return(End);
     }
     if (timeStampType == TimeStampType.Middle)
     {
         return(Start + TimeSpan.FromMinutes((End - Start).TotalMinutes / 2));
     }
     return(Start);
 }
Beispiel #10
0
        /// <summary>
        /// 获取对应时间的时间戳
        /// </summary>
        /// <param name="timeStampType"></param>
        /// <returns></returns>
        public static long GetTimeStamp(DateTime date, TimeStampType timeStampType = TimeStampType.TenLength)
        {
            //1970-01-01的Ticks值
            long     tStart = 621355968000000000;
            TimeSpan ts     = new TimeSpan(new DateTimeOffset(date).Ticks - tStart);

            if (timeStampType == TimeStampType.TenLength)
            {
                return(Convert.ToInt64(ts.TotalSeconds));
            }

            if (timeStampType == TimeStampType.TenLength)
            {
                return(Convert.ToInt64(ts.TotalMilliseconds));
            }

            return(0);
        }
Beispiel #11
0
        public string ToUnixTime(string str)
        {
            if (str.IsNullOrWhiteSpace())
            {
                return(null);
            }
            if (str.Equals("now", StringComparison.OrdinalIgnoreCase))
            {
                return(DateTime.Now.ToTimeStamp().ToString());
            }
            TimeStampType timeStampType = TimeStampType.Unix;

            if (!Type.IsNullOrWhiteSpace())
            {
                if (str.Equals("js", StringComparison.OrdinalIgnoreCase) || str.Equals("javascript", StringComparison.OrdinalIgnoreCase))
                {
                    timeStampType = TimeStampType.Javascript;
                }
            }
            return(str.ToUnixTimeStamp(timeStampType).ToString());
        }
        /// <summary>
        /// Input default direction, date data constructor with ability to specify first value
        /// </summary>
        /// <param name="pName"></param>
        /// <param name="val"></param>
        /// <param name="tType"></param>
        public OracleProcParam(string pName, DateTime val, TimeStampType tType)
        {
            this.paramIsClob     = false;
            this.Direction       = ParameterDirection.Input;
            this.dataTypeName    = DataTypeConstants.PawnDataType.DATE;
            this.Name            = pName;
            this.parameterValues = new List <object>(1);
            this.arraySize       = 1;
            string tZVal = string.Empty;

            switch (tType)
            {
            case TimeStampType.TIMESTAMP:
                this.OracleType = OracleDbType.TimeStamp;
                tZVal           = OracleDataAccessor.GenerateOracleTimestampString(val);
                break;

            case TimeStampType.TIMESTAMP_TZ:
                this.OracleType = OracleDbType.TimeStampTZ;
                tZVal           = OracleDataAccessor.GenerateOracleTimestampTZString(val);
                break;

            case TimeStampType.TIMESTAMP_LTZ:
                this.OracleType = OracleDbType.TimeStampLTZ;
                tZVal           = OracleDataAccessor.GenerateOracleTimestampLTZString(val);
                break;
            }

            //Add value
            if (val != DateTime.MaxValue)
            {
                this.AddValue(tZVal);
            }
            else
            {
                this.dataTypeName = DataTypeConstants.PawnDataType.NULLDATE;
                this.ComputeDataType();
                this.AddValue(string.Empty);
            }
        }
Beispiel #13
0
        /// <summary>
        /// 时间戳转DateTime
        /// </summary>
        /// <param name="timestr"></param>
        /// <returns></returns>
        public static DateTime GetTimeFromTimeStampInt(this string timestr, TimeStampType type)
        {
            DateTime dtStart;
            long     lTime;
            TimeSpan toNow;

            switch (type)
            {
            case TimeStampType.Ten:
                dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
                lTime   = long.Parse(timestr + "0000000");
                toNow   = new TimeSpan(lTime);
                return(dtStart.Add(toNow));

            case TimeStampType.Thirteen:
                dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
                lTime   = long.Parse(timestr + "0000");
                toNow   = new TimeSpan(lTime);
                return(dtStart.Add(toNow));;

            default:
                return(DateTime.Now);
            }
        }
Beispiel #14
0
 public TimeStamp(TimeStampType type, int time)
 {
     z_type = type;
     z_time = time;
 }
Beispiel #15
0
 public TimeStamp(TimeStampType type, uint time)
 {
     Type = type;
     Time = time;
 }
Beispiel #16
0
 /// <summary>
 /// Creates a new instance of a <see cref="TimeStampConfiguration" />.
 /// </summary>
 /// <param name="url">The URL to the timestamp authority.</param>
 /// <param name="digestAlgorithm">The digest algorithm the timestamp service authority should use on timestamp signatures.</param>
 /// <param name="type">The type of timestamp to use. See <see cref="TimeStampType" /> for details.</param>
 public TimeStampConfiguration(string url, HashAlgorithmName digestAlgorithm, TimeStampType type)
 {
     Url             = url;
     DigestAlgorithm = digestAlgorithm;
     Type            = type;
 }
Beispiel #17
0
        /// <summary>
        /// Input default direction, date data constructor with ability to specify first value
        /// </summary>
        /// <param name="pName"></param>
        /// <param name="val"></param>
        /// <param name="tType"></param>
        public OracleProcParam(string pName, DateTime val, TimeStampType tType)
        {
            this.paramIsClob = false;
            this.Direction = ParameterDirection.Input;
            this.dataTypeName = DataTypeConstants.PawnDataType.DATE;
            this.Name = pName;
            this.parameterValues = new List<object>(1);
            this.arraySize = 1;
            string tZVal = string.Empty;
            switch (tType)
            {
                case TimeStampType.TIMESTAMP:
                    this.OracleType = OracleDbType.TimeStamp;
                    tZVal = OracleDataAccessor.GenerateOracleTimestampString(val);
                    break;
                case TimeStampType.TIMESTAMP_TZ:
                    this.OracleType = OracleDbType.TimeStampTZ;
                    tZVal = OracleDataAccessor.GenerateOracleTimestampTZString(val);
                    break;
                case TimeStampType.TIMESTAMP_LTZ:
                    this.OracleType = OracleDbType.TimeStampLTZ;
                    tZVal = OracleDataAccessor.GenerateOracleTimestampLTZString(val);
                    break;
            }

            //Add value
            if (val != DateTime.MaxValue)
            {
                this.AddValue(tZVal);
            }
            else
            {
                this.dataTypeName = DataTypeConstants.PawnDataType.NULLDATE;
                this.ComputeDataType();
                this.AddValue(string.Empty);
            }
        }
Beispiel #18
0
    public void updatePresence(string details = DefaultStatusString, string state = DefaultStatusString, TimeStampType startTimeStamp = TimeStampType.Keep)
    {
        if (!gameObject.activeInHierarchy)
        {
            return;
        }

        if (details.Equals(DefaultStatusString))
        {
            details = presence.details;
        }
        if (state.Equals(DefaultStatusString))
        {
            state = presence.state;
        }

        StopCoroutine(updatePresenceCoroutine());
        presence.details       = details;
        presence.state         = state;
        presence.largeImageKey = largeImageKey;
        switch (startTimeStamp)
        {
        case (TimeStampType.Keep):
            break;

        case (TimeStampType.CurrentTime):
            presence.startTimestamp = getTimeSinceEpoch();
            break;

        case (TimeStampType.Clear):
            presence.startTimestamp = 0;
            break;
        }
        StartCoroutine(updatePresenceCoroutine());
    }
Beispiel #19
0
 /// <summary>
 /// 字符串形式时间戳转DateTime
 /// </summary>
 /// <returns>转换失败返回<see cref="DateTime"/>的default</returns>
 public static DateTime ToDateTime(this string timestampStr, TimeStampType timeStampType = TimeStampType.Unix)
 {
     return(long.TryParse(timestampStr, out long timestamp) ? ToDateTime(timestamp, timeStampType) : default);
Beispiel #20
0
 public TimeStamp(BinaryReader br)
 {
     z_type = (TimeStampType)br.ReadInt32();
     z_time = br.ReadInt32();
 }