gpt4 book ai didi

c# - 根据系统时间自动更新自定义 DateTime 对象

转载 作者:太空宇宙 更新时间:2023-11-03 15:33:28 27 4
gpt4 key购买 nike

我觉得我的问题有点令人困惑,因为我不确定应该如何给它一个合适的标题。

无论如何,我的问题是因为我在我的服务器上获取当前日期而不是系统时间(或设备时间)。我怎样才能让它像“时钟”一样工作?

例如:

// I have a string of date retrieved from server, let's call it as "stringFromServer"
myDate = Convert.ToDateTime(stringFromServer);

所以在上面的代码行之后,我需要 myDate 每秒更新一次,以便我可以随时使用它。

假设当前时间(从 myDate 获取)是 09:00,5 秒后我希望它更新到 09:05。

我想到的解决方案之一是在我的 Update() 函数中,我会做这样的事情:

myDate.Value.AddSeconds(deltaTime);

但我正在寻找更好的解决方案,希望能在这里得到一些帮助。

PS:我不使用系统时间的原因是为了防止用户更改设备设置中的时间。因此,每当用户退出或重新打开应用程序时,我都必须更新 myDate。

最佳答案

在 Unity3D 中,如果您希望每 X 秒发生一次事件,一个好的方法是使用 IEnumerator 函数。因此,例如,如果您想跟踪自定义时间变量,您可以使用这样的 IEnumerator:

IEnumerator UpdateServerTime()
{
while(true)
{
myDate.Value.AddSeconds(1);
yield return new WaitForSeconds(1);
}
}

此示例将继续每秒更新您的时间变量一秒。正如其他用户在评论中提到的那样,这不是跟踪时间的完美方式。但如果您希望统一跟踪时间,它应该可以实现您想要的效果。

重要的是要记住,为了正确使用这个方法,你需要像这样调用它:

StartCoroutine(UpdateServerTime());

关于c# - 根据系统时间自动更新自定义 DateTime 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32841981/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com