显示基于文化的日期,但基于模式的时间

时间:2010-06-04 12:31:42

标签: c# datetime formatting culture

有人知道如何展示 基于CurrentCulture的日期时间的日期,但时间遵循此模式"HH:mm:ss.fff"

我试过用:

DateTime NewDate = DateTime.Now; NewDate.ToString(CultureInfo.CurrentCulture);
结果:4-6-2010 14:49:41 预计:4-6-2010 14.49.41,495。

对于时间,我还需要显示毫秒,但日期格式必须仍然基于文化。

2 个答案:

答案 0 :(得分:1)

  NewDate.Date.ToString(Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern) + 
     NewDate.TimeOfDay.ToString("HH:mm:ss.fff");

来自MSDN

此方法使用从当前文化派生的格式信息。特别是,它结合了由 Thread.CurrentThread.CurrentCulture.DateTimeFormat 属性返回的DateTimeFormatInfo对象的 ShortDatePattern 和LongTimePattern属性返回的自定义格式字符串

答案 1 :(得分:1)

string s = String.Format("{0} {1}", NewDate.ToString("d"), NewDate.ToString("HH:mm:ss.fff"));

如果不希望使用当前文化来格式化日期字符串,可以创建CultureInfo的实例并将其传递给ToString方法

CultureInfo ci = new CultureInfo("en-US");
string s = String.Format("{0} {1}", NewDate.ToString("d", ci ), NewDate.ToString("HH:mm:ss.fff"));