使用 String.Format 将秒数转换为 HH:MM:SS
Convert seconds to HH:MM:SS with String.Format
我有一个 float
表示秒数,我想制作一个格式为 hh:mm:ss
的字符串,表示从 24 小时开始倒计时。
我正在尝试使用此代码:
TimeToMissionsReady = 86400f - FromMissionCompletedSeconds;
TimeToMissionsReadyString = string.Format ("{0:00}:{1:00}:{2:00}", TimeToMissionsReady / 3600f, (TimeToMissionsReady / 60f) % 60f, TimeToMissionsReady % 60f);
Debug.Log (TimeToMissionsReadyString);
但它不起作用,因为它显示了奇怪的东西,例如:
24:60:30 一秒钟后 24:59:29
我是不是做错了什么?
你甚至都没有告诉我们TimeToMissionsReady
的类型和值到底是什么,我不明白24的意思:60:30 在第二个 24:59:29 句子之后,但解决问题的正确方法似乎是在 .NET Framework 中使用 TimeSpan
结构。
假设您的 TimeToMissionsReady
是 86300
作为 float
。
float TimeToMissionsReady = 86300f;
您可以使用 TimeSpan.FromSeconds(double)
method 来计算这些值。
TimeSpan ts = TimeSpan.FromSeconds(TimeToMissionsReady);
你可以用 Custom TimeSpan Format Strings 格式化它;
Debug.Log(ts.ToString("hh\:mm\:ss")); // 23:58:20
分钟值按格式四舍五入 function.You 可以这样做:
string TimeToMissionsReadyString = string.Format("{0:00}:{1:00}:{2:00}", TimeToMissionsReady / 3600f, Math.Truncate((TimeToMissionsReady / 60f)) % 60f, TimeToMissionsReady % 60f);
但我相信 TimeSpan 更易于使用。这是一个使用 TimeSpan 的简单示例:
float f = 86400f;
TimeSpan t = TimeSpan.FromSeconds(f);
string s = string.Format("{0}:{1}:{2}", ((int) t.TotalHours), t.Minutes, t.Seconds);
我有一个 float
表示秒数,我想制作一个格式为 hh:mm:ss
的字符串,表示从 24 小时开始倒计时。
我正在尝试使用此代码:
TimeToMissionsReady = 86400f - FromMissionCompletedSeconds;
TimeToMissionsReadyString = string.Format ("{0:00}:{1:00}:{2:00}", TimeToMissionsReady / 3600f, (TimeToMissionsReady / 60f) % 60f, TimeToMissionsReady % 60f);
Debug.Log (TimeToMissionsReadyString);
但它不起作用,因为它显示了奇怪的东西,例如: 24:60:30 一秒钟后 24:59:29
我是不是做错了什么?
你甚至都没有告诉我们TimeToMissionsReady
的类型和值到底是什么,我不明白24的意思:60:30 在第二个 24:59:29 句子之后,但解决问题的正确方法似乎是在 .NET Framework 中使用 TimeSpan
结构。
假设您的 TimeToMissionsReady
是 86300
作为 float
。
float TimeToMissionsReady = 86300f;
您可以使用 TimeSpan.FromSeconds(double)
method 来计算这些值。
TimeSpan ts = TimeSpan.FromSeconds(TimeToMissionsReady);
你可以用 Custom TimeSpan Format Strings 格式化它;
Debug.Log(ts.ToString("hh\:mm\:ss")); // 23:58:20
分钟值按格式四舍五入 function.You 可以这样做:
string TimeToMissionsReadyString = string.Format("{0:00}:{1:00}:{2:00}", TimeToMissionsReady / 3600f, Math.Truncate((TimeToMissionsReady / 60f)) % 60f, TimeToMissionsReady % 60f);
但我相信 TimeSpan 更易于使用。这是一个使用 TimeSpan 的简单示例:
float f = 86400f;
TimeSpan t = TimeSpan.FromSeconds(f);
string s = string.Format("{0}:{1}:{2}", ((int) t.TotalHours), t.Minutes, t.Seconds);