DateTimeFormat问题

Tim*_*ter 1 .net c# vb.net datetime localization

我没有从DateTime-Object获得所需的输出:

2010-03-29 13:15:00

我的默认本地化是de-DE,所以一个简单的ToString给了我:

29.03.2010 13:15:00

我试过的是从US-Culture创建一个DateTimeFormatInfo对象并使用它的DateTimePatterns但没有成功:

Dim usDateFormat As Globalization.DateTimeFormatInfo = New Globalization.CultureInfo("en-US", False).DateTimeFormat
usDateFormat.DateSeparator = "-"
ruleResult.Claim.Last_Updated_Date.ToString(usDateFormat.ShortDatePattern)
Run Code Online (Sandbox Code Playgroud)

产量:3.29.2010

获得我想要的DateTimeFormat的最佳方式(可读,最快)是什么(我有时需要短日期,有时需要日期和时间,如上例所示)?

蒂姆,在期待中感谢你

编辑:为什么我的DateTimeFormatInfo方法不起作用,并在使用String.Format或ToString("yyyy-MM-dd HH:mm:ss")解决方案而不是私有共享(静态)DateTimeFormatInfo-Object时使其性能不同?我正在调用此函数至少30k次,并且内部格式有很多日期.

Leo*_*zyk 11

I think what you are looking for is:

DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
Run Code Online (Sandbox Code Playgroud)

以下是一些示例,我想如果看一下那么你可以理解它是如何工作的:

// create date time 2008-03-09 16:05:07.123
DateTime dateTime = new DateTime(2008, 3, 9, 16, 5, 7, 123);

dateTime.ToString("y yy yyy yyyy");  // "8 08 008 2008"   year
dateTime.ToString("M MM MMM MMMM");  // "3 03 Mar March"  month
dateTime.ToString("d dd ddd dddd");  // "9 09 Sun Sunday" day
dateTime.ToString("h hh H HH"    );  // "4 04 16 16"      hour 12/24
dateTime.ToString("m mm"         );  // "5 05"            minute
dateTime.ToString("s ss"         );  // "7 07"            second
dateTime.ToString("f ff fff ffff");  // "1 12 123 1230"   sec.fraction
dateTime.ToString("F FF FFF FFFF");  // "1 12 123 123"    without zeroes
dateTime.ToString("t tt"         );  // "P PM"            A.M. or P.M.
dateTime.ToString("z zz zzz"     );  // "-6 -06 -06:00"   time zone
Run Code Online (Sandbox Code Playgroud)