Unity C# 时间戳与DateTime相互转换

       在游戏开发中经常会遇到时间戳的相互转换,网上查了很多发现要么都过时了,要么就不是C#语言的。这里就写一下最新的转换方法。

       1.日期转换为时间戳

TimeSpan st = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0);
Debug.LogError(Convert.ToInt64(st.TotalSeconds));

       2.时间戳转换为日期时间

DateTime startTime = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc), TimeZoneInfo.Local);
DateTime dt = startTime.AddSeconds(timeStamp / 1000);

      首先得考虑时区时间,因为utc时间和本地北京时间相差八个小时。

      第一步就使用utc时间的1970/1/1转换为本地的时间。之后加上时间戳,我这里除了个1000是因为我的时间戳是毫秒级别的。

另:贴一个DateTime各时间的格式总结:https://www.cnblogs.com/whisper-fairy/archive/2013/09/02/3295814.html

你可能感兴趣的:(Unity,API)