C# + Unity 开发日记(一)时间戳

这篇博客是作者从事Unity游戏开发一年多的经验分享,首篇文章聚焦于时间戳在SLG项目中的使用。在项目中,通过时间戳计算剩余倒计时,确保即使退出程序后仍能正确显示。代码示例展示了如何进行每小时、每天、每周一零点的刷新计算,提醒开发者注意Unix时间与北京时间的8小时时差问题。
摘要由CSDN通过智能技术生成

一晃眼,从接触编程到从事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)
    {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值