美文网首页
Unity中,获取当前的网络时间

Unity中,获取当前的网络时间

作者: 全新的饭 | 来源:发表于2024-05-26 17:47 被阅读0次

    获取当前时间戳

        // 获取当前的时间戳
        private void GetCurTimestamp(Action<long> callback, Action failAction)
        {
            Utils.StartCoroutineAutoDestroy(GetCurTimestampCoroutine());
    
            IEnumerator GetCurTimestampCoroutine()
            {
                var getCurTimePath = "https://api.pinduoduo.com/api/server/_stm";
                UnityWebRequest uwr = UnityWebRequest.Get(getCurTimePath);
                yield return uwr.SendWebRequest();
                if (uwr.result == UnityWebRequest.Result.Success)
                {
                    var curTimestampStr = CurTimePathContentToCurTimestampStr(uwr.downloadHandler.text);
                    if (long.TryParse(curTimestampStr, out long curTimestamp))
                    {
                        callback?.Invoke(curTimestamp);
                    }
                    else
                    {
                        failAction?.Invoke();
                    }
                }
                else
                {
                    failAction?.Invoke();
                }
            }
    
            string CurTimePathContentToCurTimestampStr(string curTimePathContent)
            {
                return curTimePathContent.Split(":")[1].Replace("}", string.Empty);
            }
        }
    

    时间戳转时间

        // 时间戳转时间
        private string TimestampToTimeStr(long timestamp)
        {
            var timeStr = DateTimeOffset.FromUnixTimeMilliseconds(timestamp).LocalDateTime.ToString();
            return timeStr;
        }
    

    时间转时间戳

        private const string TimeStrFormat = "yyyy/%M/%d HH:mm:ss";
        // 时间转时间戳
        private bool TryTimeStrToTimestamp(string timeStr, out long timestamp)
        {
            timestamp = 0;
            var ret = false;
            string format = TimeStrFormat;
            if (DateTimeOffset.TryParseExact(timeStr, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTimeOffset dateTimeOffset))
            {
                ret = true;
                timestamp = dateTimeOffset.ToUnixTimeMilliseconds();
            }
            return ret;
        }
    

    相关文章

      网友评论

          本文标题:Unity中,获取当前的网络时间

          本文链接:https://www.haomeiwen.com/subject/uqoqqjtx.html