20

format を生成する DateTime オブジェクトから文字列を作成しようとしていますmm:dd:yyyy

通常、DateTimeオブジェクトは として提供されmm:dd:yyyy hrs:min:sec AM/PMます。

hrs:min:sec AM/PMDateTime の部分をすばやく削除して、変換したときにToString()のみになるようにする方法はありmm:dd:yyyyますか?

4

10 に答える 10

14

あなたの質問に答えるには、いいえ - 別のタイプに保存する必要があります。最も単純な選択は、文字列を使用することです。

string date = dateTime.ToString("MM:dd:yyyy");

ただし、日付をプログラムの内部に文字列として保存しないことを強くお勧めします。これにより、それらの計算や比較を行うことが難しくなります。さらに、日付表現に特定のカルチャを強制しないことをお勧めします。これは、アプリケーションがおそらくあなたのもの以外のカルチャでは期待どおりに機能しないことを意味するためです。

もう少し洗練されたアプローチは、ToString をオーバーライドするカスタム クラスを作成することです。ただし、標準ライブラリ関数で型を使用することは依然として難しいため、これも避けます。常に前後に変換する必要があります。

DateTime のままにして、プレゼンテーション層でのみ文字列への変換を行います。DateTime.ToShortDateStringユーザーフレンドリーな文化認識文字列を出力するために使用できます。

于 2010-12-11T08:06:31.043 に答える
11
datetime DateWithTimeNoSeconds = 
DateTime.Now.Date.AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute);

これは、現在の日付と時刻の日付を取得し、時間と分を追加します。

于 2012-02-22T16:52:58.753 に答える
9
DateTime date1 = new DateTime(2008, 6, 1, 7, 47, 0);
Console.WriteLine(date1.ToString());

// Get date-only portion of date, without its time.
DateTime dateOnly = date1.Date;
// Display date using short date string.
Console.WriteLine(dateOnly.ToString("d"));
// Display date using 24-hour clock.
Console.WriteLine(dateOnly.ToString("g"));
Console.WriteLine(dateOnly.ToString("MM/dd/yyyy HH:mm"));   
// The example displays the following output to the console:
//       6/1/2008 7:47:00 AM
//       6/1/2008
//       6/1/2008 12:00 AM
//       06/01/2008 00:00

http://msdn.microsoft.com/en-us/library/system.datetime.date.aspx

于 2010-12-11T08:09:14.320 に答える
8

通常、私はDateTime.ToShortDateString()Cultureを使用して、認識可能な方法で文字列に変換しています。

このようにして、現在のスレッドに設定されているカルチャの現在の書式設定のみを考慮して、日付に書式設定できます。

于 2010-12-11T08:15:01.543 に答える
2

DateTime.AddMinutes追加する代わりに削除したい場合は、約(または秒または時間)負の数を追加してください!

于 2012-03-26T09:17:11.023 に答える
2

簡単な方法で、おそらく最善ではありませんが、

DateTime dt = new DateTime();
dt = DateTime.Now;
string sdate = dt.ToShortDateString();
dt = DateTime.Parse(sdate);

または略して

var dt = DateTime.Parse(DateTime.Now.ToShortDateString());
于 2014-09-15T15:52:09.540 に答える
0

秒なしの日付と時刻の場合は次のようになります。

private DateTime _startTime;
public DateTime StartTime 
{ 
    get { return _startTime; } 
    set 
    { 
        _startTime = value.AddSeconds(-value.Second)
                          .AddMilliseconds(-value.Millisecond);   
    }
}
于 2017-01-07T01:48:49.343 に答える