我有一个存储为DateTime的值。
为了使输出在导出中看起来更具可读性,我想只从表达式中返回MM / DD。
我目前的解决方案是将DateTime作为字符串传递给一个函数,该函数可以有效地将其切成小块,然后再将它重新组合在一起。虽然这有效,但我知道必须有一个更有效/更优雅的解决方案。
我目前的代码如下:
extractDate(DateTimeVar.ToString());
定义:
private string extractDate(string datetime)
{
string[] newString = datetime.Split(' ');
string newStringArray = newString[0];
string[] breakUp = newStringArray.Split('/');
string finalOutput = breakUp[0] + "/" + breakUp[1];
return finalOutput;
}
正如你所看到的,相当混乱。我想出的另一个解决方案是切掉前五个字符,因为DateTime的前5个字符总是包含“MM / dd”:
private string extractDate(string datetime)
{
return datetime.Substring(0, 5);
}
我认为后一种解决方案更好。但是,有没有更好的?感谢。
答案 0 :(得分:7)
你可以使用:
DateTimeVar.ToString("MM/dd");
不需要自定义方法,因为DateTime.ToString(string)
已允许custom format strings for DateTime values。
答案 1 :(得分:5)
答案 2 :(得分:2)
使用DateTimeVar.ToString("MM/dd")
方法。
有关可以传递给ToString方法的完整选项列表,请检查Custom Date and Time Format Strings on MSDN
答案 3 :(得分:2)
datetime.ToString("MM/dd")
怎么样?或datetime.Month和datetime.Day
答案 4 :(得分:1)
你不需要正则表达式,你可以使用DateTime.ToString(string)
方法提取你想要的东西。
http://msdn.microsoft.com/en-us/library/zdtaw1bw
datetimevar.ToString("MM/dd");
然后你不需要关心语言环境作为没有参数的ToString()的输出 取决于你的文化,即价值不同......