【发布时间】:2016-02-16 12:21:49
【问题描述】:
我在编辑模式下遇到日期格式问题。日期存储为 dd/MM/yyyy HH:mm:ss。我想在bootstrapdatetime picker 中绑定的日期应该具有格式 MM/dd/yyyy,但 viewmodel 的格式为 DateTime 为 dd/MM/yyyy,并将其发送到编辑视图。
我试图通过更改 CurrentCulture、CurrentUICulture 和 Parsing 等来更改格式。但没有成功。
Web-App 的 CurrentCulture 设置为“pt-BR”,但我更喜欢 datepicker 始终使用“en-US”文化,即使应用程序文化设置为“pt-BR”或任何其他文化。
型号:
[Column(TypeName = "datetime2")]
public DateTime? StartsOn { get; set; }
视图模型:
public DateTime? StartsOn { get; set; }
控制器:
CultureInfo provider = CultureInfo.CreateSpecificCulture("en-US");
string dateString1="";
string lang="pt-BR";
dateString1 = entityVM.StartsOn.ToString();
var StartsOn = (DateTime.ParseExact(dateString1, "dd/MM/yyyy HH:mm:ss", provider)
.ToString("MM/dd/yyyy", provider));
var outputCulture = CultureInfo.CreateSpecificCulture("en-US");
var inputCulture = CultureInfo.CreateSpecificCulture(lang);
//Just for date format change to en-US culture, and then reset it to application culture
Thread.CurrentThread.CurrentCulture = outputCulture;
Thread.CurrentThread.CurrentUICulture = outputCulture;
//entityVM.StartsOn = (DateTime.ParseExact(StartsOn, "MM/dd/yyyy", outputCulture)); //ok, Format changed here
//Reset culture to pt-BR (application culture)
Thread.CurrentThread.CurrentCulture = inputCulture; // Problem! Format again changed here.
Thread.CurrentThread.CurrentUICulture = inputCulture;
这里是视图:
<div class='input-group date' data-provide="datepicker">
@Html.TextBox("StartsOn", Model.StartsOn, new { @class = "form-control", @id = "datetimepicker1", @type = "text", @required = true })
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
<script type="text/javascript">
$(document).ready(function () {
$('.datepicker').datepicker();
});
</script>
问题是我总是得到 dd/MM/yyyy 而不是 MM/dd/yyyy。怎么转换成MM/dd/yyyy?
【问题讨论】:
标签: c# asp.net-mvc datetime datepicker