C# 使用ToString可显示当月第一天的日期。我应该吗?
我需要在合同上加一个日期。律师们说,日期必须显示为本月的第一天 在过去,我总是创建一个新的日期,并为显示设置该日期的格式C# 使用ToString可显示当月第一天的日期。我应该吗?,c#,date,tostring,C#,Date,Tostring,我需要在合同上加一个日期。律师们说,日期必须显示为本月的第一天 在过去,我总是创建一个新的日期,并为显示设置该日期的格式 NewEffDate = new DateTime(effectiveDate.Year, effectiveDate.Month, 1); NewEffDate.ToString("MM/dd/yyyy"); 我突然想到,当我格式化显示日期时,我可以简单地做到这一点 effectiveDate.ToString("MM/1/yyyy"); 有什么理由我不应该用
NewEffDate = new DateTime(effectiveDate.Year, effectiveDate.Month, 1);
NewEffDate.ToString("MM/dd/yyyy");
我突然想到,当我格式化显示日期时,我可以简单地做到这一点
effectiveDate.ToString("MM/1/yyyy");
有什么理由我不应该用ToString来做吗
我想知道我是因为之前没有看到这一点而变得稠密,还是因为在格式化时这样做不是一个好主意。如果您只需要打印这个日期,您可以自由使用它。我建议您使用以下方法来获得每月的第一天:
NewEffDate = new DateTime(effectiveDate.Year, effectiveDate.Month, 1);
然后使用这段代码:
NewEffDate.ToString("MM/dd/yyyy");
不管怎么说,你的解决方案也很有效,使用它是省钱的。但是我更喜欢使用上面的代码来解决这个问题。简短的答案是-不,看起来不错。
较长的答案-这取决于:您还可以使用
NewEffDate
做什么?从它到它的ToString
之间有多少行代码?这些问题将引导您更容易地进行维护:)您为什么要转换为字符串?看起来你应该创建一个新的日期,这样你就可以正确地进行排序/比较/等等。它们都有相同的结果,所以我会选择.ToString(“MM/1/yyyy”)
,因为它更具可读性。显然,我不知道你的代码,但从你所说的内容来看,我不认为这是一个问题。不过,这取决于您对该值的使用情况,只有您才能真正回答这个问题。谢谢您的评论。对于这个问题,代码只将新日期插入xml文件中,该文件将被传递以生成合同文档。它仅在该合同上使用,与xml中显示的完全相同。它从不用于任何其他用途或存储在任何地方。我试图弄清楚使用格式化来更改数据是否是一种好的形式。