【发布时间】:2014-03-31 16:23:36
【问题描述】:
我希望我的字符串 YearMonthDayHourMinuteSecondMillisecond 采用这种格式(必要时添加“0”):
20140227142807
...但是这个:
string YearMonthDayHourMinuteSecond = string.Format("{0}{1}{2}_{3}{4}{5}", dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second);
...给我“2”(而不是“02”)表示二月等,例如:
2014227142807
我可以这样解决:
string YearMonthDayHourMinuteSecondMillisecond = string.Format("{0}{1}{2}_{3}{4}{5}{6}", dt.Year, ConditionalZeroForepad(dt.Month), ConditionalZeroForepad(dt.Day), ConditionalZeroForepad(dt.Hour), ConditionalZeroForepad(dt.Minute), ConditionalZeroForepad(dt.Second);
private string ConditionalZeroForepad(string s)
{
if (s.Length < 2)
{
return string.Format("0{1}", s);
}
}
...但这比一袋烟头丑 9 倍。
有什么更优雅的方式来实现这一点?
【问题讨论】:
-
我认为仅变量名
YearMonthDayHourMinuteSecondMillisecond就已经“比一袋烟头丑九倍”。 -
可能 8.3 左右,但绝对不是 9!
标签: c# datetime padding date-formatting prepend