C# 为什么数据库中的24小时日期时间值显示为am/pm?

C# 为什么数据库中的24小时日期时间值显示为am/pm?,c#,asp.net-mvc,C#,Asp.net Mvc,我正在开发一个大型asp.net MVC web应用程序 给定消息的创建日期存储在(MS SQL)数据库中,如下所示: 2015-12-02 18:08:24.383 然而,不知何故,它作为am/pm日期输出到web浏览器: 12/2/2015 6:08:24 PM 为什么会这样?控制器方法或视图中似乎没有任何显式转换。模型值为: public System.DateTime MessageSentDate { get; set; } 然后在视图中: 此消息发送日期:@message.Me

我正在开发一个大型asp.net MVC web应用程序

给定消息的创建日期存储在(MS SQL)数据库中,如下所示:

2015-12-02 18:08:24.383
然而,不知何故,它作为am/pm日期输出到web浏览器:

12/2/2015 6:08:24 PM
为什么会这样?控制器方法或视图中似乎没有任何显式转换。模型值为:

public System.DateTime MessageSentDate { get; set; }
然后在视图中:

此消息发送日期:@message.MessageSentDate

正如你所看到的,这里没有转换。那么,为什么数据库中的24小时DateTime被输出为am/pm值呢。我是不是错过了什么


我想输出没有am或pm的24小时格式。是否有一个配置值可用于在整个应用程序中更改时间显示格式

输出格式取决于区域性的默认设置。有关相关问题,请参阅。

输出格式取决于区域性的默认设置。有关相关问题,请参阅。

我猜这是由于设置短日期和长日期格式的文化。我知道在winforms中,这很容易被覆盖,但对MVC不太确定。

我猜这是由于设置短日期和长日期格式的文化。我知道,在winforms中,这很容易被覆盖,但对MVC不太确定。

在控制器中,您可以将日期格式化为以下格式:

CreatedDate.ToString("M/d/yyyy HH:mm");

这将为您提供24个军用时间格式。

在控制器中,您可以将日期格式如下:

CreatedDate.ToString("M/d/yyyy HH:mm");

这将为您提供24个军用时间格式。

通常值的输出格式取决于区域设置

web应用程序的区域设置在
web.config
globalization
部分中定义:

<globalization uiCulture="en-IE" enableClientBasedCulture="false" />
HH表示24小时。。。时间


enableClientBasedCulture
设置为false时,格式将不取决于用户的浏览器设置(我的意思是
Accept Language
HTTP头)。

通常值的输出格式取决于区域设置

web应用程序的区域设置在
web.config
globalization
部分中定义:

<globalization uiCulture="en-IE" enableClientBasedCulture="false" />
HH表示24小时。。。时间


enableClientBasedCulture
设置为false时,格式将不取决于用户的浏览器设置(我的意思是
Accept Language
HTTP头)。

如何将
DateTime
精确显示为输出?请你也展示一下你的作品好吗?请给我们展示一下你将
DateTime
返回给UICome的代码。伙计们,请你至少等一下,看看最小但完整的代码,然后再回答好吗?可能有很多原因。我没有投你反对票,但我们需要看看OP的代码,以我的拙见给出完整的答案。
DateTime.ToString()
返回与服务器端文化相对应的格式。看起来您有英国文化或类似文化您如何将您的
DateTime
完全显示为输出?请你也展示一下你的作品好吗?请给我们展示一下你将
DateTime
返回给UICome的代码。伙计们,请你至少等一下,看看最小但完整的代码,然后再回答好吗?可能有很多原因。我没有投你反对票,但我们需要看看OP的代码,以我的拙见给出完整的答案。
DateTime.ToString()
返回与服务器端文化相对应的格式。看起来你有英国文化或类似的文化。这没有回答我的问题,并且需要很长时间来检查每个控制器方法。这没有回答我的问题,并且需要很长时间来检查每个控制器方法。已解决。在我的Global.asax文件中:
System.Threading.Thread.CurrentThread.CurrentCulture=new CultureInfo(Request.UserLanguages[0])这本质上意味着日期时间按照用户浏览器设置显示。已解决。在我的Global.asax文件中:
System.Threading.Thread.CurrentThread.CurrentCulture=new CultureInfo(Request.UserLanguages[0])这本质上意味着日期时间按照用户浏览器设置显示。