获取当前时间戳
// 获取当前的时间戳
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;
}