时间戳管理器
using System;
using UnityEngine;
public class SyncTime : Singleton<SyncTime>
{
private static double ServerTime = 0;
private static double ValidStartGameTime = 0;
public void Sync(long time)
{
ValidStartGameTime = Time.realtimeSinceStartup;
ServerTime = time;
}
public TimeSpan GetLeftTime(long validTime)
{
DateTime date1970 = new DateTime(1970, 1, 1, 0, 0, 0).ToLocalTime();
TimeSpan ts = date1970.AddSeconds((double)validTime).Subtract(GetSystemTime());
return ts;
}
public DateTime GetSystemTime()
{
DateTime date1970 = new DateTime(1970, 1, 1, 0, 0, 0).ToLocalTime();
DateTime dateTime = date1970.AddSeconds((double)ServerTime).AddSeconds((double)(Time.realtimeSinceStartup - ValidStartGameTime));
return dateTime;
}
}