我有以下字符串"2017-2"
,我需要将其格式化为"2017-02"
。
var period = "2017-2";
var periodFormatted = String.Format("{0:0000-00}", period);
periodFormatted返回"2017-2"
将句点格式化为"2017-02"
的正确语法是什么?
答案 0 :(得分:2)
string.Format
不会知道(或关心)您的字符串包含数字,因此您无法直接格式化。您可以拆分字符串并将最后一部分解析为数字。例如:
var period = "2017-2";
var parts = period.Split('-');;
var periodFormatted = $"{parts[0]}-{int.Parse(parts[1]):D2}";
但是,您应该首先将period
值作为正确的DateTime
对象(或表示年份和月份值的自定义类型),这会使格式设置变得微不足道。
答案 1 :(得分:1)
您可以将输入 - string
解析为DateTime
,然后在第二步中对其进行格式化。
string period = "2017-2";
DateTime temp = DateTime.ParseExact(period, "yyyy-M", CultureInfo.InvariantCulture );
string result = temp.ToString("yyyy-MM");
注意:M
定义不带前导0
的月份,MM
始终为2位数月份。
参考:https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings