2012-02-28 4 views
3

У меня есть следующий код:Как добавить начальные нули в параметры String.Format?

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, как бы я это сделать?

ответ

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

побега символ \: гарантирует, что вы получите буквальное разделитель двоеточия, а не культуры конкретного разделителя времени, чтобы соответствовать исходному коду , См. Custom Date and Time format strings in MSDN.

Чтобы получить начальные нули для числовых аргументов, смотрите на Custom Numeric Format Strings:

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); 

или даже Standard Numeric Format Strings:

формат
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); 
+0

Вам нужно либо двойной '\' или использовать дословный строковый литерал, хотя. Или поставьте его в одинарные кавычки. –

+0

@JonSkeet - орел, как всегда, спасибо. – Joe

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); 
0

Не будет ли эта работа:

string textTransDate = DateTime.Now.ToString("yy-MM-hh:mm"); 
Смежные вопросы