我没有从 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)
输出:3.29.2010
获得我想要的 DateTimeFormat 的最佳方式(可读、最快)是什么(我有时需要短日期,有时需要日期和时间,就像我上面的示例一样)?
谢谢你的期待, 蒂姆
编辑:为什么我的 DateTimeFormatInfo 方法不起作用,并且在使用 String.Format 或 ToString("yyyy-MM-dd HH:mm:ss") 解决方案而不是私有(private)共享(静态)DateTimeFormatInfo 对象?我至少调用了这个函数 30k 次,里面有很多日期要格式化。
最佳答案
我想你要找的是:
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
下面是一些例子,我想如果你看一下你就会明白它是如何工作的:
// 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
关于c# - 日期时间格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3717272/