38

mm/dd/yyyy 形式の文字列を datetime 変数に変換する必要がありますが、mm/dd/yyyy 形式のままにする必要があります。

string strDate = DateTime.Now.ToString("MM/dd/yyyy");

助けてください。

4

6 に答える 6

47

メソッドを探しているDateTime.Parse()( MSDN Article )

したがって、次のことができます。

var dateTime = DateTime.Parse("01/01/2001");

これにより、DateTime型付きオブジェクトが得られます。

DateTime.ParseExact使用する日付形式を指定する必要がある場合は、 ( MSDN の記事)を使用します。

このような状況で使用するもの (英国スタイルの日付形式を使用している場合):

string[] formats= { "dd/MM/yyyy" }
var dateTime = DateTime.ParseExact("01/01/2001", formats, new CultureInfo("en-US"), DateTimeStyles.None);
于 2012-04-06T12:00:53.793 に答える
34

M月の部分には大文字が必要です。

string strDate = DateTime.Now.ToString("MM/dd/yyyy");

小文字mは、分を出力 (および解析) するためのものです ( などh:mm)。

たとえば、完全な日時文字列は次のようになります。

string strDate = DateTime.Now.ToString("MM/dd/yyyy h:mm");

大文字と小文字mMの違いに注意してください。


また、常に同じ日時形式の文字列を扱う場合は、C# 拡張メソッドとして記述することで簡単に処理できます。

public static class DateTimeMyFormatExtensions
{
  public static string ToMyFormatString(this DateTime dt)
  {
    return dt.ToString("MM/dd/yyyy");
  }
}

public static class StringMyDateTimeFormatExtension
{
  public static DateTime ParseMyFormatDateTime(this string s)
  {
    var culture = System.Globalization.CultureInfo.CurrentCulture;
    return DateTime.ParseExact(s, "MM/dd/yyyy", culture);
  }
}

例: DateTime/string 間の変換

DateTime now = DateTime.Now;

string strNow = now.ToMyFormatString();
DateTime nowAgain = strNow.ParseMyFormatDateTime();

.NET のように使用するカスタムフォーマット情報を格納する方法はないことに注意してください。ほとんどの文字列フォーマットは、現在設定されているカルチャに依存します。つまり、DateTimedefault

System.Globalization.CultureInfo.CurrentCulture.

唯一の簡単な方法は、カスタム拡張メソッドをロールすることです。

また、もう 1 つの簡単な方法は、DateTime に別の「コンテナ」または「ラッパー」クラスを使用することです。つまりexplicit operator、DateTime/string との間で自動的に変換される定義済みの特別なクラスです。しかし、それは危険な領域です。

于 2012-04-06T11:48:44.503 に答える
2

これを行うことでフォーマットも変更できます

string fecha = DateTime.Now.ToString(format:"dd-MM-yyyy");

// これにより"/""-"

于 2016-08-08T04:41:08.913 に答える
1

以下は私にとってはうまくいきます。

string strToday = DateTime.Today.ToString("MM/dd/yyyy");
于 2014-08-20T04:54:50.227 に答える