我有一些代码从今天的日期中减去用户指定的天数并写出一些东西。我们使用 dd-mm-yyyy 格式。在测试期间,在具有 mm-dd-yyyy 格式的机器上,它减去了几个月而不是几天。看起来像这样:
DateTime Date1 = DateTime.Now.Subtract(new TimeSpan(days, 0, 0, 0));
如果格式与我们的不同,我们如何读取计算机的日期时间格式并修改减法。
谢谢。
你能不能只做:
DateTime myDate = DateTime.Now.AddDays(-1);
这段代码展示了如何获取正在运行的机器的格式,并希望表明您在操作日期时不必担心它,只需在输出它时。
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