mm/dd/yyyy 形式の文字列を datetime 変数に変換する必要がありますが、mm/dd/yyyy 形式のままにする必要があります。
string strDate = DateTime.Now.ToString("MM/dd/yyyy");
助けてください。
メソッドを探している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);
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 のように使用するカスタムフォーマット情報を格納する方法はないことに注意してください。ほとんどの文字列フォーマットは、現在設定されているカルチャに依存します。つまり、DateTime
default
System.Globalization.CultureInfo.CurrentCulture.
唯一の簡単な方法は、カスタム拡張メソッドをロールすることです。
また、もう 1 つの簡単な方法は、DateTime に別の「コンテナ」または「ラッパー」クラスを使用することです。つまりexplicit operator
、DateTime/string との間で自動的に変換される定義済みの特別なクラスです。しかし、それは危険な領域です。
これを行うことでフォーマットも変更できます
string fecha = DateTime.Now.ToString(format:"dd-MM-yyyy");
// これにより"/"
、"-"
以下は私にとってはうまくいきます。
string strToday = DateTime.Today.ToString("MM/dd/yyyy");