C#24小时格式的日期时间对象没有上午PM

时间:2017-01-11 10:45:21

标签: c# asp.net .net datetime

我正在尝试将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(“en-GB”); 如果它是en-US 12小时格式 默认情况下,它将基于系统日期时间设置进行en-US

2 个答案:

答案 0 :(得分:2)

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

  

物业价值

     

输入:System.Int32

     

小时组件,表示为0到23之间的值。

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

如果您正在谈论格式化,那么您需要将其转换为字符串,如评论中所述。

答案 1 :(得分:0)

据我所知,24小时格式既不是DateTime如何解析也不是保存,而是格式化。假设您输入if - 块(我在LinqPad中解析您dateString时没有成功),您可以使用

获取格式正确的日期字符串
var dateStringWith24Hours = dateTime.ToString(dateString);

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