【问题标题】:Display Date based on culture but Time based on a pattern显示基于文化的日期,但基于模式的时间
【发布时间】:2010-06-04 12:31:41
【问题描述】:

有人知道怎么显示吗 基于 CurrentCulture 的日期时间的日期,但时间遵循此模式 "HH:mm:ss.fff"

我试过用:

日期时间 NewDate = DateTime.Now; NewDate.ToString(CultureInfo.CurrentCulture);
结果:2010 年 4 月 6 日 14:49:41。
预计:2010 年 4 月 6 日 14.49.41,495。

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

【问题讨论】:

  • 定义不起作用,你能发布你得到的和你期望的吗?
  • 我已经更新了问题。希望现在清楚了。

标签: c# datetime formatting culture


【解决方案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"));

【讨论】:

  • 就是这样!!非常感谢莫腾。只需添加毫秒: string s = NewDate.ToString("d") + " " + NewDate.ToString("HH:mm:ss.fff");
  • 太棒了 - 我现在添加了毫秒 :-)
【解决方案2】:
  NewDate.Date.ToString(Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern) + 
     NewDate.TimeOfDay.ToString("HH:mm:ss.fff");

来自MSDN

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-13
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    相关资源
    最近更新 更多