2

我有一个存储为 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);
    }

我认为后一种解决方案是一个更好的解决方案。然而,有没有更好的呢?谢谢。

4

5 回答 5

7

您可以使用:

DateTimeVar.ToString("MM/dd");

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

于 2012-08-17T17:56:53.817 回答
5

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

代码将是:

.ToString("MM/dd");

记住,MSDN 是你的朋友 :)

于 2012-08-17T17:56:08.327 回答
2

使用DateTimeVar.ToString("MM/dd")方法。

有关您可以传递给 ToString 方法的完整选项列表,请查看MSDN 上的自定义日期和时间格式字符串

于 2012-08-17T17:56:43.897 回答
2

怎么样 datetime.ToString("MM/dd")?或 datetime.Month 和 datetime.Day

于 2012-08-17T17:56:57.757 回答
1

您不需要正则表达式,您可以使用DateTime.ToString(string)方法 ro 提取您想要的内容。

http://msdn.microsoft.com/en-us/library/zdtaw1bw

datetimevar.ToString("MM/dd");

然后你不需要关心语言环境,因为没有参数的 ToString() 的输出取决于你的文化,即值不同......

于 2012-08-17T17:57:41.447 回答