今天我遇到了一个令人讨厌的虫子.这项任务非常简单,我需要做的就是将DateTime对象转换为"yyyymmdd"格式的字符串."yyyymmdd"部分在外部软件供应商的开发文档中说明.所以,我方便地从他们的文件中复制字符串并粘贴到我的代码中.所以我得到了下一个
public string GetDateString(DateTime dateTime)
{
return dateTime.ToString("yyyymmdd");
}
Run Code Online (Sandbox Code Playgroud)
很简单.这么简单,我不想对该方法进行单元测试.20分钟后,我的组件的其他部分完成.我启动了应用程序以检查事情是否正确.几乎立即我注意到我的网页中有一些假定的日期字段显示20091511!这不可能是正确的,一年中没有第15个月.所以,我赶紧回到我的代码来检查可能的错误.事实证明,在将DateTime转换为字符串时,我应该使用"yyyyMMdd"而不是"yyyymmdd".
承认,这个错误是由于我对细节缺乏关注.所有C#引用中都清除了"mm"和"MM"之间的差异.我仍然想说,如果每天都不能处理这类任务,那么很容易忽略差异.
我的问题是:在一行代码中是否有一个干净的(即没有神奇的字符串)方法来做覆盖物?该return dateTime.Year + "" + dateTime.Month + "" + dateTime.Day;代码似乎是工作,但它太像黑客.
更新:看起来字符串格式方式是C#可以提供的最佳方式.也许我正在洗脑,但我仍然认为这种编程风格属于低级语言,如c.
String.Format("{0:0000}{1:00}{2:00}", dateTime.Year, dateTime.Month, dateTime.Day);
Run Code Online (Sandbox Code Playgroud)
你可以改用这个,不过我更喜欢简洁的格式。除了 00,您还可以使用 MM 进行特定月份的格式设置(如 中DateTime.ToString())。
| 归档时间: |
|
| 查看次数: |
1555 次 |
| 最近记录: |