【问题标题】:C# System.DateTime.Now returns customized time format set in windowsC# System.DateTime.Now 返回在 windows 中设置的自定义时间格式
【发布时间】:2016-05-11 21:30:35
【问题描述】:

C# System.DateTime.Now 给我 date with time ,但它给我格式化我在 windows calander 中设置的任何内容,即 (a.m.)(p.m.) 甚至 (xyz),如何获得标准时间格式 (AM/PM ) 无论在 windows calander 中设置的自定义时间格式如何?

【问题讨论】:

  • DateTime 就是这样,它没有专门的“格式” - 如果你希望它以某种格式显示,你正在用它做一些事情......
  • 日期的表示方式与其值无关。
  • 如果您需要标准格式,请为DateTime 对象创建一个扩展方法,该方法使用 ToString() 方法并提供您自己的格式。 This link 显示用于格式化的字符。
  • @To_ALLtry to change windows time AM/PM format to custom values like xyz, then check with System.DateTime.Now... 它会给你 mm/dd/yyyy hh:mm:ss xyz ——

标签: c# datetime datetime-format


【解决方案1】:

System.DateTime.Now 没有任何表示格式,它是ToString() 的格式。

喜欢:

System.DateTime.Now.ToString("dd, MM");

查看 msdn 了解更多信息: https://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

【讨论】:

  • 尝试将 Windows 时间 AM/PM 格式更改为自定义值,例如 xyz,然后使用 System.DateTime.Now 进行检查...它将为您提供 mm/dd/yyyy hh:mm:ss xyz
【解决方案2】:

如果您使用 DateTime 作为 DateTime 类型,那么它将自动显示您的窗口格式。对于自定义格式,您必须将其转换为字符串

string newdate = DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);

有用的链接MSDN

【讨论】:

  • rehman,您的解决方案工作正常,因为它在获取 DateTime 时向我显示了正确的 AM.PM 格式(无论我设置为 xyz 而不是 AM,或 abc 而不是 PM)。但是 CultureInfo.InvarinatCuture 独立于文化值吗?或者它可以与文化指定格式发生冲突的地方?
  • 不变的文化是文化不敏感的;它与英语相关,但与任何国家/地区无关,请看这里msdn.microsoft.com/en-us/library/…
  • 我已经阅读了那篇文章,只是想问一下您对 CultureInfo 的经验,不过谢谢
  • 根据我的经验,是的,它的文化独立并且非常灵活地使用不同的文化,在我的许多项目中我都成功地实现了这一点,结果很棒
  • 我有一个小问题,如果我什至将 DateTime Custure.Invariant 值分配给 DateTime 的 DataTable 列,那么我会以文化特定格式获得该列的值吗?数据表中的日期时间列不应该存储我的culture.invariant值吗?
猜你喜欢
  • 2013-11-09
  • 1970-01-01
  • 1970-01-01
  • 2017-10-13
  • 2011-12-29
  • 2018-04-03
  • 1970-01-01
  • 2017-08-07
  • 1970-01-01
相关资源
最近更新 更多