C#用RegEx打破DateTime

Nei*_*len 2 c# regex datetime

我有一个存储为DateTime的值.

为了使输出在导出中看起来更具可读性,我想只从表达式返回MM/DD.

我当前的解决方案涉及将DateTime作为字符串传递给一个函数,该函数可以有效地将其切成小块,然后再将它重新组合在一起.虽然这有效,但我知道必须有一个更有效/更优雅的解决方案.

我当前的代码如下所示:

extractDate(DateTimeVar.ToString());
Run Code Online (Sandbox Code Playgroud)

而定义:

    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;
    }
Run Code Online (Sandbox Code Playgroud)

你可以看到,相当混乱.我提出的另一个解决方案涉及砍掉前五个字符,因为DateTime的前5个字符将始终包含"MM/dd":

    private string extractDate(string datetime)
    {
        return datetime.Substring(0, 5);
    }
Run Code Online (Sandbox Code Playgroud)

我认为后一种解决方案更好.但是,有没有更好的?谢谢.

Ree*_*sey 7

你可以使用:

DateTimeVar.ToString("MM/dd");
Run Code Online (Sandbox Code Playgroud)

不需要自定义方法,因为DateTime.ToString(string)已经允许DateTime值的自定义格式字符串.


Jus*_*ony 5

为什么不直接使用ToString(formatThatYouWant)覆盖?

代码是:

.ToString("MM/dd");
Run Code Online (Sandbox Code Playgroud)

记住,MSDN是你的朋友:)