54

C#を使用してASP.NETWebアプリケーションで昨日の日付を取得したい。私は解決策を探してみましたが、あまり成功していません。私が使用しているコードは、今日の日付を出力するだけです。

string yr = DateTime.Today.Year.ToString();
string mn = DateTime.Today.Month.ToString();
string dt = DateTime.Today.Day.ToString();
date = string.Format("{0}-{1}-{2}", yr, mn, dt);

昨日の日付を取得するにはどうすればよいですか?

4

9 に答える 9

147

の値でDateTime.AddDays()メソッドを使用します-1

var yesterday = DateTime.Today.AddDays(-1);

それはあなたに与えるでしょう:{6/28/2012 12:00:00 AM}

使用することもできます

DateTime.Now.AddDays(-1)

これにより、現在の時刻で前の日付が表示されます。 {6/28/2012 10:30:32 AM}

于 2012-06-29T05:26:34.443 に答える
15

あなたが投稿したコードは間違っています。

を複数回呼び出すべきではありませんDateTime.Today。日付が変わったときにそのコードを実行すると、完全に間違った結果が得られる可能性があります。たとえば、2011 年 12 月 31 日に実行した場合、「2011-1-1」となることがあります。

単一の呼び出しをDateTime.Today使用ToStringしてから、適切なフォーマット文字列を使用して、必要に応じて日付をフォーマットします。

string result = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
于 2012-06-29T05:28:25.170 に答える
5

次のコード スニペットで昨日の日付を取得します。

DateTime dtYesterday = DateTime.Now.Date.AddDays(-1);
于 2012-06-29T05:27:44.070 に答える
5

DateTime.Today複数回呼び出す必要はありません。一度使用して、日付オブジェクトを希望の形式でフォーマットするだけです..そのように

 string result = DateTime.Now.Date.AddDays(-1).ToString("yyyy-MM-dd");

また

 string result = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
于 2012-06-29T05:41:02.553 に答える
4
var yesterday = DateTime.Now.AddDays(-1);
于 2012-06-29T05:26:28.230 に答える
4

このようなものが動作するはずです

var yesterday = DateTime.Now.Date.AddDays(-1);

DateTime.Now現在の日付と時刻が表示されます。

時間要素を削除しようとしている場合、追加.Dateすると日付のみに制限されます。つまり、時間は00:00:00です。

最後.AddDays(-1)に、昨日を与えるために 1 日を削除します。

于 2012-06-29T05:27:01.963 に答える
2
string result = DateTime.Now.Date.AddDays(-1).ToString("yyyy-MM-dd");
于 2012-06-29T05:29:46.400 に答える
0

DateTime.Todayそれが意味するように、今日の日付であり、1日前に日付を取得する必要があるため、を使用して1日を減算しAddDays(-1)ます;

DateTime には、カルチャに応じて書式設定を取得するための十分なオプションがあり、ToShortDateStringそれらを個別に連結する必要はありません。

また、インスタンスの.ToString()バージョンで望ましい形式を使用できますDateTime

于 2012-06-29T05:30:30.353 に答える