0

我有一些代码从今天的日期中减去用户指定的天数并写出一些东西。我们使用 dd-mm-yyyy 格式。在测试期间,在具有 mm-dd-yyyy 格式的机器上,它减去了几个月而不是几天。看起来像这样:

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

如果格式与我们的不同,我们如何读取计算机的日期时间格式并修改减法。

谢谢。

4

2 回答 2

5

你能不能只做:

DateTime myDate = DateTime.Now.AddDays(-1);
于 2013-08-07T08:41:13.243 回答
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 回答