私はdatetime情報を保持するために次の方法でプロパティを持っています
public string ExecutionTime{ get; set; }
ExecutionTime 値はdd-MM-yyyy hh:mm:ss tt
How can i change the property value to appear as yyyy-MM-dd hh:mm:ss tt
and show in a textboxとして設定されています。
私はstring
プロパティを使用しません。代わりにDateTime
、実際には1つのように見えるので、それを保存します。表示するときに、必要に応じて書式を設定できます。
public DateTime ExecutionTime{ get; set; }
例えば:
Textbox1.Text = ExecutionTime.ToString("yyyy-MM-dd hh:mm:ss tt");
そうしないと、常にその文字列を a に、DateTime
またはその逆に解析する必要があり、(将来) ローカライズの問題が発生する可能性さえあります。
あなたの日付は次のように保存されますstring
:
DateTime
string
別の形式に戻すParseExactが必要です:
// Your date
string inputDate = "20-01-2012 02:25:50 AM";
// Converts to dateTime
// Do note that the InvariantCulture is used, as I've specified
// AM as the "tt" part of the date in the above example
DateTime theDate = DateTime.ParseExact(inputDate, "dd-MM-yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
// Now get the string to be displayed
// I've also specified the Invariant (US) culture, you might want something else
string yourString = theDate.ToString("yyyy-MM-dd hh:mm:ss tt", CultureInfo.InvariantCulture);
しかし、実際には日付をDateTime
ではなくとして保存する必要がありstring
ます。
DateTime d;
var isValid = DateTime.TryParse(ExecutionTime, out d);
if (isValid)
{
textBox1.Text = d.ToString("dd-MM-yyyy hh:mm:ss tt");
}