Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#用正则表达式打破约会时间_C#_Regex_Datetime - Fatal编程技术网

C#用正则表达式打破约会时间

C#用正则表达式打破约会时间,c#,regex,datetime,C#,Regex,Datetime,我有一个存储为DateTime的值 为了使输出在导出中看起来更可读,我只希望从表达式返回MM/DD 我目前的解决方案是将DateTime作为字符串传递给一个函数,该函数可以有效地将DateTime分割成小块,然后重新组合起来。虽然这样做有效,但我知道必须有一个更有效/优雅的解决方案 我当前的代码如下所示: extractDate(DateTimeVar.ToString()); 定义如下: private string extractDate(string datetime)

我有一个存储为DateTime的值

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

我目前的解决方案是将DateTime作为字符串传递给一个函数,该函数可以有效地将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");