0

今日の日付からユーザー指定の日数を差し引いて何かを書き出すコードがあります。dd-mm-yyyy 形式を使用しました。テスト中、mm-dd-yyyy 形式のマシンでは、日ではなく月が差し引かれました。次のようになります。

DateTime Date1 = DateTime.Now.Subtract(new TimeSpan(days, 0, 0, 0));

コンピューターの日時形式をどのように読み取り、形式が私たちのものと異なる場合に減算を変更できますか。

ありがとう。

4

2 に答える 2

1

このコードは、実行中のマシンの書式設定を取得する方法を示しており、日付を操作するときに気にする必要がなく、出力するときに気にする必要がないことを示しています。

そして... http://xkcd.com/1179/

int days = 1;

DateTime n = DateTime.Now;

Console.WriteLine( "Now using a fixed known format for tests");
Console.WriteLine( "{0:yyyy MM dd}" , n);
Console.WriteLine();

DateTime Date1 = n.Subtract(new TimeSpan(days, 0, 0, 0));

Date1.Dump();


DateTimeFormatInfo dtfi = CultureInfo.CurrentUICulture.DateTimeFormat;

Console.WriteLine("machines short date pattern");
Console.WriteLine( dtfi.ShortDatePattern );
Console.WriteLine("{0:d}" , Date1);
Console.WriteLine();

Console.WriteLine("machines long date pattern");
Console.WriteLine( dtfi.LongDatePattern );
Console.WriteLine("{0:D}" , Date1);

私のマシンでの出力:

Now using a fixed known format for tests
2013 08 07


06/08/2013 10:05:06
machines short date pattern
M/d/yyyy
06/08/2013

machines long date pattern
dddd, MMMM dd, yyyy
06 August 2013
于 2013-08-07T09:04:29.637 に答える