【发布时间】:2016-03-16 08:44:21
【问题描述】:
我正在尝试在我的 asp.net mvc 网络应用上转换 DateTime 的格式。
我有这个代码:
date = Request["date"].AsDateTime().ToString("MM-dd-yyyy HH:mm:ss");
当 Request["date"] 仅作为一天的一位数字时,该代码可以完美运行
(如 08-03-2016)但是当日期有两位数字日期时
(如 2016 年 3 月 15 日),
它返回 01-01-0001... 有人能解释一下为什么并告诉我如何让它变得更好吗?
提前致谢!
编辑:
我正在使用的更多代码:
用于日期选择的 Javascript 日期选择器:
<script>
$(document).ready(function() {
$('.date').datepicker({ dateFormat: "dd/mm/yy" });
});
</script>
格式代码:
String date = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 0, 0, 0).ToString("dd/MM/yyyy HH:mm:ss");
string[] formats = { "dd-MM-yyyy" };
DateTime resultDate = new DateTime();
if (DateTime.TryParseExact(Request["date"], formats, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out resultDate))
{
//if everything good you will have your date in resultDate variable
date = resultDate.ToString("MM-dd-yyyy HH:mm:ss");
}
【问题讨论】:
-
很可能是因为
.AsDateTime()扩展方法使用MM-dd-yyyy的文化解析数据 -11-03-2016有效吗? -
为什么要从 Request 对象中读取查询参数,而不是使用操作参数?为什么要使用本地化格式而不是例如。 2015-03-15 哪个可以明确解析?
-
那个参数是从哪里来的?如果您将其更改为 ISO 格式,您甚至可以在您的操作方法中使用 DateTime 类型的参数
-
@StephenMuecke 是的 11-03-2016 正在工作
-
@PanagiotisKanavos 我正在使用该请求,因为我在视图中使用了 javascript 日期选择器,这就是日期的来源。
标签: c# asp.net asp.net-mvc asp.net-mvc-4 datetime