DateTime格式区域性-如何更改它
本文关键字:何更改 格式 区域性 DateTime | 更新日期: 2023-09-27 18:25:24
在我的web.config
中有这一行,像2.44
或0.5
这样的数字可以正常工作——通常是ViewModels
中的所有小数
我在这里找到了解决方案,如果我想在视图模型中有小数,我必须像这样更改globalization
:
<globalization culture="en-us" uiCulture="pl-PL" />
但现在日期是6/19/2013 10:04:18 PM
格式——我想要欧洲格式,就像19-6-2013 22:04:18
一样。始终自动。
当我将culture
更改为pl-PL
时,日期格式是正确的,但文本框中的小数不起作用。。(当数字为十进制时返回0)。
如何使用欧洲日期时间格式和工作小数?
问候
我遇到了同样的问题,因为我来自罗马尼亚。这是我的解决方案:
视图/Shared/DisplayTemplates/Date.cs.html(如果不存在,则创建文件夹和文件)
@model Nullable<DateTime>
@{
DateTime dt = DateTime.Now;
if (Model != null) {
dt = (System.DateTime)Model;
}
@dt.ToString("dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
}
基本上,无论何时使用Html。Display或Html。DisplayFor对于DateTime(在我的示例中可以为null),它将根据此模板进行渲染。您还可以设置一个编辑器模板(在这里我使用jquery-ui的DatePicker)。你可以在这里阅读更多关于MVC模板的
Layout.cs中引用的脚本(因此在所有视图中都可用)
$.validator.methods.number = function (value, element) {
value = floatValue(value);
return this.optional(element) || !isNaN(value);
}
$.validator.methods.range = function (value, element, param) {
value = floatValue(value);
return this.optional(element) ||
(value >= param[0] && value <= param[1]);
}
function floatValue(value) {
return parseFloat(value.replace(",", "."));
}
这是为了解决文本框等中的小数点问题。
我并不是说这是最好的解决方案(至少在后一部分,实际替换句点和逗号可能会显得粗糙),但它完成了任务。我还提到我使用
<globalization enableClientBasedCulture="false" culture="ro" uiCulture="ro" />
,从而强制使用区域性(我从不需要以不同的格式显示日期或货币,或任何十进制数字)。