我有下面的字符串"2017-2",我需要将它格式化为"2017-02"。
var period = "2017-2";
var periodFormatted = String.Format("{0:0000-00}", period); periodFormatted返回"2017-2"
将句点格式化为"2017-02"的正确语法是什么?
发布于 2017-12-07 14:29:21
string.Format不会知道(或关心)您的字符串包含数字,所以您不能直接这样格式化。不过,您可以拆分字符串并将最后一部分解析为数字。例如:
var period = "2017-2";
var parts = period.Split('-');;
var periodFormatted = $"{parts[0]}-{int.Parse(parts[1]):D2}";但是,您可能首先应该将period值作为适当的DateTime对象(或者表示年份和月份值的自定义类型),这使得格式化变得非常简单。
发布于 2017-12-07 14:48:14
您可以将输入-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://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
https://stackoverflow.com/questions/47697195
复制相似问题