DateTime格式区域性-如何更改它

本文关键字:何更改 格式 区域性 DateTime | 更新日期: 2023-09-27 18:25:24

在我的web.config中有这一行,像2.440.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)。

如何使用欧洲日期时间格式和工作小数?

问候

DateTime格式区域性-如何更改它

我遇到了同样的问题,因为我来自罗马尼亚。这是我的解决方案:

视图/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" />

,从而强制使用区域性(我从不需要以不同的格式显示日期或货币,或任何十进制数字)。