DateTime日期组件补0问题:如何将日/月格式化为02而非2?
解决方法
你可以通过给ToString()方法传入格式说明符,让单个数字的月、日自动补前导0,常用的是"D2"格式(表示十进制数字,至少两位,不足补0)。
修改后的代码如下:
DateTime dategift = DateTime.Now; var year = dategift.Year.ToString(); var month = dategift.Month.ToString("D2"); // 月份补前导0 var day = dategift.Day.ToString("D2"); // 日期补前导0 var hour = dategift.Hour.ToString(); var min = dategift.Minute.ToString(); var sec = dategift.Second.ToString();
如果需要时、分、秒在个位数时也补0,同样给它们加上"D2"格式即可:
var hour = dategift.Hour.ToString("D2"); var min = dategift.Minute.ToString("D2"); var sec = dategift.Second.ToString("D2");
另外,也可以用字符串插值的方式直接格式化,写法更简洁:
DateTime dategift = DateTime.Now; var year = $"{dategift.Year}"; var month = $"{dategift.Month:D2}"; var day = $"{dategift.Day:D2}"; var hour = $"{dategift.Hour}"; var min = $"{dategift.Minute}"; var sec = $"{dategift.Second}";
格式说明符"D2"的作用是:将数字转换为字符串,确保长度至少为2位,当数字小于10时自动在前面补0。
内容的提问来源于stack exchange,提问作者mertckr
相关产品推荐
相关产品推荐

