c# - 日期时间格式问题

标签 c# .net 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)

输出: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/

相关文章:

c# - 在VB.NET中初始化ExtendWebBrowser,从C#到VB.Net解析问题

c# - 如何使用 Linq 查询存储过程对象

c# - 使用 Isolated COM 时应用程序在 CoCreateInstance 期间挂起

.net - .NET 的 HTML 生成器?

c# - 通过反射内部属性获取有关当前属性的信息

c# - .NET 框架中的 lambda 是如何解析的?

.net - 插入到通用字典中可能存在重复键吗?

c# - 您可以在静态上下文中引用非静态方法吗?

c# - 更新 Windows 服务程序集而不重新启动它?

c# - 如何通过拖动扩展窗口框架使 WPF 窗口可移动?