C# 以 hh:mm:ss 格式显示毫秒

Posted

技术标签:

【中文标题】C# 以 hh:mm:ss 格式显示毫秒【英文标题】:C# Display Milliseconds in hh:mm:ss format 【发布时间】:2015-09-01 22:18:30 【问题描述】:

我正在尝试编写一个程序,该程序具有在程序激活后指定时间后锁定计算机的功能。我遇到的问题是让剩余时间正确显示。我正在尝试使用datetime 与 switch/if 场景来做到这一点。根据用户指定的时间显示倒数计时器。更具体地说,我想做的是

1) 用户指定分钟数 2) 分钟以编程方式转换为毫秒 3 我卡住了)毫秒通过hh:mm:ss中的标签进行转换和显示。

我花了几天时间搜索,但我不太了解 MSDN 示例,也无法完全解决这个问题。虽然找到了很多从日期时间到毫秒的例子。

【问题讨论】:

你目前有什么代码 我投票结束这个问题,因为它是关于小学算术(单位转换),而不是开发软件。首先你必须弄清楚如何手工(公式),然后如果你需要帮助将它变成代码,你可以在这里问。 @BenVoigt 不要看这不是软件编写。试图弄清楚如何在不重新发明***的情况下以编程方式显示格式。长手 (input/60000)-> a(mm) 然后如果 a>60 b++(hh), c=60000-a.result(ss) 等等。我想找到一种速记/更清洁的方法。真的没有从哪里开始。我知道社区喜欢看到代码尝试,但我没有明确的基础。我在玩 int min = datetime.parse(mm); datetime end = datetime.parse(datetime.now) timespan t = min+end lable.text = t.tostring(hh:mm:ss"); MSDN 只是混淆了 m 【参考方案1】:

TimeSpan 会更适合,因为您说的是持续时间,而不是时间点。您可以从毫秒创建一个TimeSpan,然后使用ToString() 对其进行格式化:

int ms = 123456;
TimeSpan ts = TimeSpan.FromMilliseconds(ms);
Console.WriteLine(ts.ToString(@"hh\:mm\:ss"));

【讨论】:

太完美了。我发誓我试过了,但无法让它工作。我唯一能想到的就是我错过了@。 .非常感谢! 很高兴它成功了。 TimeSpan.ToStringDateTime.ToString 变化无常。

以上是关于C# 以 hh:mm:ss 格式显示毫秒的主要内容,如果未能解决你的问题,请参考以下文章

如何将毫秒转换为“hh:mm:ss”格式?

如何将毫秒更改为 yyyy-MM-dd HH:mm:ss 格式的日期对象 [重复]

如何在 Oracle 中将毫秒转换为 hh mm ss 格式

VB.NET 毫秒计时器 - "hh\:mm\:ss\,fff"

时间戳(精确到毫秒)转yyyy-mm-dd hh:mm:ss

来自 Hive 的 Pyspark 数据中带有毫秒 'YYYY-MM-DD hh:mm:ss.SSS' 的日期