C#用正则表达式打破约会时间
我有一个存储为DateTime的值 为了使输出在导出中看起来更可读,我只希望从表达式返回MM/DD 我目前的解决方案是将DateTime作为字符串传递给一个函数,该函数可以有效地将DateTime分割成小块,然后重新组合起来。虽然这样做有效,但我知道必须有一个更有效/优雅的解决方案 我当前的代码如下所示:C#用正则表达式打破约会时间,c#,regex,datetime,C#,Regex,Datetime,我有一个存储为DateTime的值 为了使输出在导出中看起来更可读,我只希望从表达式返回MM/DD 我目前的解决方案是将DateTime作为字符串传递给一个函数,该函数可以有效地将DateTime分割成小块,然后重新组合起来。虽然这样做有效,但我知道必须有一个更有效/优雅的解决方案 我当前的代码如下所示: extractDate(DateTimeVar.ToString()); 定义如下: private string extractDate(string 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;
}
如你所见,相当混乱。我提出的另一个解决方案是切掉前五个字符,因为日期时间的前五个字符总是包含“MM/dd”:
我认为后一种解决方案更好。然而,有没有更好的呢?谢谢。为什么不直接使用覆盖
守则是:
.ToString("MM/dd");
请记住,MSDN是您的朋友:)使用
DateTimeVar.ToString(“MM/dd”)
方法
有关可以传递到ToString方法的选项的完整列表,请选中您可以使用的:
DateTimeVar.ToString("MM/dd");
没有必要像已经允许的那样使用自定义方法。关于
datetime.ToString(“MM/dd”)
如何?或者datetime.Month和datetime.Day您不需要正则表达式,您可以使用datetime.ToString(string)
方法提取所需内容
然后,您就不需要关心区域设置作为没有参数的ToString()的输出
取决于您的文化背景,即值不同…“mm”是分钟,“mm”是月完美解决方案。我知道我遗漏了一些明显的东西,但不知道ToString()能够做到这一点。谢谢。现在回想起来,我的第二个解决方案也没用了——一个月或日为一位数的DateTime值会导致输出错误。
DateTimeVar.ToString("MM/dd");
datetimevar.ToString("MM/dd");