我正在尝试将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
根据 MSDN 文档,DateTime 实例仅包含信息,Hour 属性是 0 到 23 之间的整数:
属性值
类型:系统.Int32
小时部分,表示为 0 到 23 之间的值。
https://msdn.microsoft.com/library/system.datetime.hour(v=vs.110).aspx
如果您正在谈论格式化它,那么您需要将其转换为字符串,如注释中所述。
我所知,24 小时格式既不是如何解析或保存DateTime
的问题,也不是格式的问题。假设您输入了 if
块(我在 LinqPad 中解析您的dateString
没有成功),您可以通过以下方式获得格式正确的日期字符串
var dateStringWith24Hours = dateTime.ToString(dateString);
因为格式字符串中的HH
意味着您希望将小时格式化为 24 小时。