2

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;
    }

ご覧のとおり、かなり厄介です。DateTimeの最初の5文字には常に「MM/dd」が含まれるため、私が思いついた別の解決策は、最初の5文字を​​切り落とすことです。

    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)ものを抽出するメソッドを使用できます。

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

datetimevar.ToString("MM/dd");

次に、引数のないToString()の出力は文化に依存するため、ロケールを気にする必要はありません。つまり、値は異なります...

于 2012-08-17T17:57:41.447 に答える