You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unity中将1 tick对应1天的整数转换为DD/MM/YYYY日期格式

实现方案

核心逻辑直接使用C#内置DateTime的天数偏移能力实现,无需手动换算秒数,计算准确无误差,适配你的需求规则:1tick对应1天,起始日期为1500年1月1日。

修改步骤

  • 引入System.Globalization命名空间,保证日期分隔符固定为/,不受系统区域设置影响
  • 在类中定义起始日期常量
  • 替换原tick计数文本为格式化后的日期字符串

完整修改后代码

using System;
using System.Globalization;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class TimeTickSystem : MonoBehaviour
{
    public class OnTickEventArgs : EventArgs
    {
        public int tick;
    }

    public static event EventHandler<OnTickEventArgs> OnTick;

    public GameObject textDisplay;

    private const float Tick_Timer_Max = 0.2f;
    // 定义起始日期:1500年1月1日
    private readonly DateTime _startDate = new DateTime(1500, 1, 1);

    private int tick;
    private float tickTimer;

    private void Awake()
    {
        tick = 0;
    }

    private void Update()
    {
        tickTimer += Time.deltaTime;
        if (tickTimer >= Tick_Timer_Max)
        {
            tickTimer -= Tick_Timer_Max;
            tick++;
            if (OnTick != null) OnTick(this, new OnTickEventArgs { tick = tick });
            // 按DD/MM/YYYY格式输出日期
            textDisplay.GetComponent<Text>().text = _startDate.AddDays(tick).ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
        }
    }
}

补充说明

如果后续需要从任意tick值反查日期,直接调用_startDate.AddDays(指定tick值).ToString("dd/MM/yyyy", CultureInfo.InvariantCulture)即可得到对应日期,兼容读档、时间回滚等场景。

内容的提问来源于stack exchange,提问作者FinnM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:54:03