【问题标题】:DateTime.ToString() not working as expectedDateTime.ToString() 没有按预期工作
【发布时间】:2014-05-06 16:10:12
【问题描述】:

在屏幕截图中,调用了 DateTime.ToString() 方法,但日期未按预期格式格式化(如 Quick Watch widnow 中所示)。有什么问题吗?

【问题讨论】:

  • 您给它一个明确的格式,然后期望它使用区域格式?
  • 是的。看起来像史诗般的程序员失败了。你不调用“ToString()”,你调用了一个重载,它准确地说明了你想要这个格式的格式。
  • 你想要什么格式的?
  • 不,我希望获得指定为 ToString 方法参数的格式。显示区域格式,以防它们对输出产生任何影响。
  • @Brij 我只是想让你的问题更清楚,截图很小,说实话,并不完全需要。您可以显示预期输出与实际输出,这样会更清晰。

标签: c# .net datetime datetime-format


【解决方案1】:

您在ToString 格式中使用/ 作为分隔符。但是您当前的文化似乎将- 作为日期分隔符。这就是为什么你会看到差异。你可以通过CultureInfo.InvariantCultureToString

喜欢:

DateTimeObject.ToString("MM/dd/yyy HHmmss", CultureInfo.InvariantCulture)

【讨论】:

  • 我们一定是赢家.. +1
  • @Habib,为什么/ 变成了-。尽管已明确指定,为什么它们在内部被更改?
  • @Brij,Sriram,指出了正确的文档,但只是为了添加一件事,当您未在 ToString 中指定文化时,则使用当前文化。你可能会看到:stackoverflow.com/questions/2329297/…
【解决方案2】:

DateTime.ToString/ 替换为当前日期分隔符,将 : 替换为当前时间分隔符。您自己传递格式,它与区域设置中的内容不匹配。

要使用区域设置,请使用ToShortDateString()ToShortTimeString()

【讨论】:

    【解决方案3】:

    你可以用这个:

       DateTime.now.ToString("yyyyMMddHHmmss");
    

       DateTime.now.ToString("mm-dd-yyyy");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 2020-03-18
      • 2012-06-14
      • 2014-11-15
      • 1970-01-01
      • 2012-07-02
      相关资源
      最近更新 更多