一晃眼,从接触编程到从事Unity游戏开发已经过去了一年多的时间。回想当时裸辞,靠着在网上看视频,一步步的进入程序员的行业,现在无比庆幸。为了使自己保持进取心、不断积累进步,便决定通过博客的方式记录下自己在工作中遇到的问题,废话不多说,直接进入正题。
之所以第一篇博客写时间戳的东西,是因目前正在做的SLG项目中经常遇到需要显示时间刷新倒计时的需求,这个只需要用结束时间减去当前时间就可得出剩余时间,通过每秒不断的刷新这个剩余时间文本,即可实现倒计时的功能。
在项目中当前时间客户端可以很容易的获取到,而结束时间,为保证在退出程序重新登录的情况下依然能正常显示刷新倒计时,则需要服务器记录,并在需要的时候发送给客户端。而在一些有固定刷新时间的情况下,客户端可以通过自己计算得到结束时间,比如每小时刷新、每天刷新、每周的某一天刷新,这时候就可以通过时间戳来计算而不用再从服务器获取结束时间。
下面是代码:
/// <summary>
/// 转换为10位Unix时间戳
/// </summary>
/// <param name="time">DateTime时间</param>
/// <returns>Unix时间戳</returns>
private long ConvertUnixTimeStamp(DateTime time)
{
DateTime original = new DateTime(1970, 1, 1, 0, 0, 0);//格林尼治时间
return (long)(time.ToUniversalTime() - original).TotalSeconds;
}
/// <summary>
/// 10位Unix时间戳转换为Unix DateTime
/// </summary>
/// <param name="time">10位时间戳</param>
/// <returns>Unix DateTime</returns>
private DateTime ConvertUnixDateTime(long time)
{