Rya*_*tes 7 c# string.format formatexception
将string.format的常用格式(例如datetime)拉成可访问的常量的优雅方法是什么?
理想情况下,我想做类似以下的事情,但是当我尝试使用此代码时,我收到以下错误.
var now = DateTime.Now;
var format = "yyyy-MM-dd";
Console.WriteLine(string.Format("The date is {1:{0}}", format, now));
Run Code Online (Sandbox Code Playgroud)
[System.FormatException:输入字符串的格式不正确.]在Program.Main():第9行
这背后的原因是某些API需要特定的日期时间格式.我希望能够引用一个地方来获得这种格式,这样所有调用都可以.
我意识到以下内容会起作用,但它看起来并不优雅.
Console.WriteLine(string.Format("The date is {1:" + format + "}", format, now));
Run Code Online (Sandbox Code Playgroud)
您可以采用应用程序常量路线 - 保存格式字符串的静态类。
namespace App.Framework {
public static class AppConstant {
public static readonly string DisplayDateShort = "MM/dd/yyyy";
}
}
Run Code Online (Sandbox Code Playgroud)
就你的例子而言,它是有缺陷的;你想呼唤ToString()你的DateTime价值。
Console.WriteLine(now.ToString(AppConstant.DisplayDateShort));