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

3

我正在尝试使用C#制作数字时钟。我有三个计数器对象,分别用于小时、分钟和秒。格式必须为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);

欢呼!

“_hours”,“_minutes”和“_seconds”的类型是什么? - Vikhram
它们是一个对象类。我已经创建了一个计数器。 - Aseem Malhotra
为什么你要“三个计数器对象”?你不需要。DateTime已经拥有了你所需的一切。只需使用当前DateTime在你喜欢的时间间隔内更新你的视图即可... - Fildor
这是一个学校项目。只是在学习如何使用对象类。现在它正在工作。谢谢。 - Aseem Malhotra
6个回答

4

在尝试使用string.Format之前,您是否尝试将字符串转换为int类型?类似以下方式:

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

如果_hours.Value_minutes.Value_seconds.Value是数字类型,那么您可以使用以下代码,它更加高效。
string.Format("{0:00}:{1:00}:{2:00}", 
                _hours.Value, _minutes.Value, _seconds.Value);

3

您可以尝试一些略有不同的东西:

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

2

在我看来,如果你已经有了一个 string 类型,将其强制转换为 intDateTime 然后再次将其转换为字符串是没有意义的。

我会使用 String.PadLeft 方法:

string h = hours.PadLeft(2, '0');
string m = minutes.PadLeft(2, '0');
string s = seconds.PadLeft(2, '0');
string result = h + ":" + m + ":" + s;

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


在线查看示例


1
您可以使用DateTimeToString()方法中提供的格式选项,如下所示:
 (new DateTime(1900, 1, 1, _hours.Value, _minutes.Value, _seconds.Value)).ToString("HH:mm:ss");

0

您可以尝试使用以下方法:

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

0
如果您有一些日期变量,您可以这样做:
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)
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接