【问题标题】:C# Date time object with 24 hour format Without Am PM具有 24 小时格式的 C# 日期时间对象,没有 Am PM
【发布时间】:2017-01-11 10:45:21
【问题描述】:

我正在尝试将 DateTime 格式设置为 24 小时。最初我有一个 12 小时表示的字符串。我发现的所有解决方案都将DateTime 转换为字符串。

string dateString = "Mon 16 Jun 8:30 AM 2008"; // <-- Valid
        string format = "dd/MM/yyyy HH:mm";
        DateTime dateTime;
        if (DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
            DateTimeStyles.RoundtripKind, out dateTime))
        {
            DateTime dateIn24 = dateTime;//  dateIn24 should be in 24 hour format
        }

web.config 有什么可以做的吗?像下面这样:

    <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB" uiCulture="en-GB"/>

我得到了答案

Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CN"); 如果它的 en-US 12 小时格式 默认情况下,它将根据系统日期时间设置为 en-US

【问题讨论】:

  • 我已经完成了..他们正在将日期转换为字符串..我需要输出为日期时间对象
  • DateTime 没有格式,除非您将其打印为字符串。否则,它的内部表示对于所有实例都是相同的“格式”
  • @Lijo 如果您找到了解决方案,您应该自己回答您的问题并将您的答案标记为解决方案:/
  • 您找到的解决方案仍然具有误导性。 没有内部 12 小时或 24 小时表示。默认的ToString 实现使用当前文化来格式化DateTime。因此,当CurrentCulture 为 en-US 时,您将获得 12 小时的表示。这或多或少是我在回答中写的。

标签: c# asp.net .net datetime


【解决方案1】:

DateTime 实例只包含信息,Hour 属性是从 0 到 23 的整数,根据 MSDN 文档:

资产价值

类型:System.Int32

小时分量,表示为 0 到 23 之间的值。

https://msdn.microsoft.com/library/system.datetime.hour(v=vs.110).aspx

如果你在谈论格式化它,那么你需要将它转换成一个字符串,就像在 cmets 中提到的那样。

【讨论】:

    【解决方案2】:

    据我所知,24 小时格式既不是DateTime 如何解析或保存的问题,也不是格式问题。鉴于您输入了if-block(我没有成功在 LinqPad 中解析您的dateString),您可以获得格式正确的日期字符串

    var dateStringWith24Hours = dateTime.ToString(dateString);
    

    因为格式字符串中的 HH 表示您希望将小时数设置为 24 小时。

    【讨论】:

    • 这就是我要说的。在内部,DateTime 将始终具有 24 小时表示。 12 小时格式仅在将DateTime 转换为字符串时才相关。也许您可以详细说明为什么如何您需要 12 小时制,然后我们可以提出解决方案。
    • 默认日期时间为 12 小时格式。我需要 24 小时格式
    • 再说一遍:DateTime 结构对 12 小时表示一无所知。只有相应的格式化方法可以。
    • 创建简单的windows窗体应用检查datetime.now formt
    • @EmersonCardoso 感谢您的努力,但我认为他不会相信我们...
    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多