C# 如何将字符串格式化为hh:mm:ss?

C# 如何将字符串格式化为hh:mm:ss?,c#,C#,我想用C语言制作一个数字时钟。我有3个计数器对象,分别为小时、分钟和秒。它的格式必须是hh:mm:ss 我所做的 String hours = _hours.Value.ToString(); String minutes = _minutes.Value.ToString(); String seconds = _seconds.Value.ToString(); if (hours.Length == 1) { hours = "0" + hours; } if (minute

我想用C语言制作一个数字时钟。我有3个计数器对象,分别为小时、分钟和秒。它的格式必须是
hh:mm:ss

我所做的

String hours =  _hours.Value.ToString();
String minutes = _minutes.Value.ToString();
String seconds = _seconds.Value.ToString();

if (hours.Length == 1)
{
    hours = "0" + hours;
}

if (minutes.Length == 1)
{
    minutes = "0" + minutes;
}

if (seconds.Length == 1)
{
    seconds = "0" + seconds;
}

return hours + ":" + minutes + ":" + seconds;
它可以工作,但我正在尝试一种更有效的方法,使用String.format。我尝试过几种不同的正则表达式,但都没有成功

string b = string.Format("{0:D2}:{1:00}:{2:d2}", hours, minutes, seconds);

干杯

IMO如果你已经有了一个
字符串
类型,那么将其转换为
int
DateTime
之后再将其字符串化是没有用的

我将使用以下方法:

PadLeft
将使字符串的长度始终至少为作为第一个参数传递的值的长度(
2
,在本例中),并用在第二个参数传递的值(
0
)填充“空”位置



在尝试
字符串格式之前,是否尝试将字符串转换为int?像下面这样

string.Format("{0:00}:{1:00}:{2:00}", 
                int.Parse(hours), int.Parse(minutes), int.Parse(seconds));
如果
\u hours.Value
\u minutes.Value
\u seconds.Value
是数字类型,则可以使用以下更有效的代码

string.Format("{0:00}:{1:00}:{2:00}", 
                _hours.Value, _minutes.Value, _seconds.Value);
您可以尝试使用:

string b = DateTime.Now.ToString("HH:mm:ss");

你可以尝试一些不同的东西:

DateTime dt = new DateTime(2000, 1, 1, hours, minutes, seconds); // just ignore year, month and day
var x = dt.ToString("HH:mm:ss");

您可以使用
DateTime
ToString()
方法上提供的格式选项,如下所示:

 (new DateTime(1900, 1, 1, _hours.Value, _minutes.Value, _seconds.Value)).ToString("HH:mm:ss");

如果您有一些日期变量,则可以执行以下操作:

string b = dateVar.ToString("HH:mm:ss");
如果您希望解决方案完全适用于您的示例,则:

return string.Format("{0:00}:{1:00}:{2:00}", 
    int.Parse(hours), 
    int.Parse(minutes), 
    int.Parse(seconds)
);

\u小时
\u分钟
\u秒
的类型是什么?它们是一个对象类。我做了一个计数器。你为什么有“三个计数器对象”?你不应该。DateTime有你所需要的一切。只需在你喜欢的时间间隔内用当前日期时间更新你的视图……这是一个学校项目。只是学习如何使用对象类。现在开始工作了。谢谢
return string.Format("{0:00}:{1:00}:{2:00}", 
    int.Parse(hours), 
    int.Parse(minutes), 
    int.Parse(seconds)
);