Sla*_*avo 11 .net c# format datetime
在为字符串表示格式化DateTime对象时,C#提供了很大的灵活性,但是,必须知道所有格式字符串才能使用这种灵活性.
如果您想以"星期五,6月24日"的形式显示日期,您可以这样做:
DateTime someDate = DateTime.Now;
Console.Write(someDate.ToString("ddd, MMMM dd"));
Run Code Online (Sandbox Code Playgroud)
虽然这很好用,但是对于更复杂的格式来说很难,特别是对于第一次使用它的开发人员而言.
我想从上面的代码返回相同的结果,但是这样:
DateTime someDate = DateTime.Now;
Console.WriteLine(someDate.ToString("Wed, June 12"));
Run Code Online (Sandbox Code Playgroud)
指定为字符串的日期可以是任意的.本质上,格式必须首先以某种方式解析日期.我知道这种方法有局限性(本地化是一种),但对于简单的场景,它更容易理解.除了自己实现之外,还有什么办法吗?我愿意使用第三方库.
Jon*_*son 14
通常我只是弄清楚正确的格式字符串应该是什么(在你的例子中"ddd, MMMM dd"),然后将它作为常量存储在应用程序的某个地方......
public static class DateTimeFormats
{
public string DayOfWeekMonthDay = "ddd, MMMM dd";
}
Run Code Online (Sandbox Code Playgroud)
那么你可以参考它
DateTime.Now.ToString(DateTimeFormats.DayOfWeekMonthDay)
Run Code Online (Sandbox Code Playgroud)
我可以看到这对于较新的开发人员来说可能看起来更容易,但是在构建"日期字符串日期格式"功能时还有一些问题需要解决.我可以想象这样的函数可能会失败的场景,比如:
现在,您可以向新开发人员解释他们需要注意不要使用含糊不清的示例日期格式模板.但是这需要他们已经明白它是如何可能是不明确的.他们需要像格式化函数一样思考.
这就是为什么日期格式字符串的定义,他们是 - 以尽可能具体介绍一下开发者想要/需要产生所需的输出格式.他们尽可能地防止这种含糊不清.
如果开发人员最终需要"像格式化功能一样"来获得他们想要的东西,那么可能值得花时间学习现有的定义.