设置DateTime参数的区域设置/格式
本文关键字:设置 格式 区域 DateTime 参数 | 更新日期: 2023-09-27 18:28:50
我使用bootrap日期时间选择器允许用户输入日期,如下所示:
<div class="form-group">
<label for="end">Start date:</label><br />
<div class='input-group date' id='dt1'>
@Html.TextBox("StartDateFilter", null, new { @class = "form-control" })
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<script type="text/javascript">
$('#dt1').datetimepicker({
format: 'L',
locale: 'en-GB'
});
</script>
然后,该日期将作为以下方法签名中的参数:
public ActionResult Index(string sortOrder, string sortBy, string currentFilter, string searchString, string filterType, int? itemDisplay, int? page, DateTime? startDateFilter, DateTime? endDateFilter)
但是,文本框中的日期显示为DD/MM/YYYY,但传递为MM/DD/YYYY,这会导致一些格式错误和解析错误。如何将参数中DateTime对象的格式或本地更改为DD/MM/YYYY。
我已经在system.web下的web.config文件中添加了以下内容:
<globalization culture="en-GB" uiCulture="en-GB" />
提前谢谢。
您可以使用此
更新的
global.asax
protected void Application_Start()
{
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings =
new JsonSerializerSettings
{
DateFormatHandling = DateFormatHandling.IsoDateFormat,
DateTimeZoneHandling = DateTimeZoneHandling.Unspecified,
Culture = CultureInfo.GetCultureInfo("en-GB")
};
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");
}
使用DateTime.ParseExact方法将方法中的输入日期格式化如下:
DateTime sDate = DateTime.ParseExact(startDateFilter.ToString(), "dd/MM/yyyy", CultureInfo.InvariantCulture);
DateTime eDate = DateTime.ParseExact(endDateFilter.ToString(), "dd/MM/yyyy", CultureInfo.InvariantCulture);
这是你想要的吗?