如何在String.Format参数中添加前导零?

4

我有以下代码:

string textTransDate = String.Format("{0}-{1}-{2} {3}:{4}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute);

如果月份和日期小于10,我想在前面添加零,应该如何实现?

5个回答

10

3
String.Format(@"{0:yyyy-MM-dd HH\:mm}", DateTime.Now);

转义字符\:确保您获取字面冒号分隔符,而不是特定于文化的时间分隔符,以匹配您的原始代码。请参见MSDN中的自定义日期和时间格式字符串

要获取数字参数的前导零,请查看自定义数值格式字符串

String.Format("{0:0000}-{1:00}-{2:00} {3:00}:{4:00}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute);

甚至包括标准数字格式字符串

String.Format("{0:D4}-{1:D2}-{2:D2} {3:D2}:{4:D2}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute);

你需要将 \ 加倍或使用原义字符串字面量。或者将其放在单引号中。 - Jon Skeet

1
string textTransDate = String.Format("{0}-{1:00}-{2} {3}:{4}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute);

1

0
这个会不会行:
string textTransDate = DateTime.Now.ToString("yy-MM-hh:mm");

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