gpt4 book ai didi

asp.net-core - 如何在 asp.net Core 的所有文化中强制执行公历

转载 作者:行者123 更新时间:2023-12-04 17:47:55 26 4
gpt4 key购买 nike

我们有一个 asp.net Core 网站,它需要不同的文化,但由于日历不同,我们在将日期保存到数据库时遇到了问题。

即使文化发生了变化,我们如何才能强制执行公历?

    private readonly CultureInfo[] _supportedCultures = {
new CultureInfo("ar"),
new CultureInfo("en")
};

我们想要的是让“ar”或任何其他文化使用“en”日期格式...

谢谢

最佳答案

嗯,你总是可以使用 CultureInfo.InvariantCulture/CultureInfo.InvariantUiCulture ,或任何您喜欢的文化。

IStringLocalizer<T>有一个 .WithCulture(...)方法,因此您可以创建具有该特定文化的本地化程序。

像这样(未经测试):

IStringLocalizer<SharedResource> localizer = ..;
var invariantLocalizer = localizer.WithCulture(CultureInfo.InvariantCulture);

// where "ShowDate" is "Today is {0}" in the resx
var neutralLocalizer = invariantLocalizer["ShowDate", DateTime.Now];

在 MVC View 中,您可以为 Views/_ViewImports.cshtml 中的每个 View 全局定义它/Views/_ViewStart.cshtml :

@inject Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration TelemetryConfiguration
@inject IHtmlLocalizer<Startup> Localizer
@{
var InvariantLocalizer = Localizer.WithCulture(CultureInfo.InvariantCulture);
}

您还可以选择设置给定文化的日历。

var current = System.Globalization.CultureInfo.CurrentCulture;
current.DateTimeFormat.Calendar = new GregorianCalendar();

Dates and calendars所示.

关于asp.net-core - 如何在 asp.net Core 的所有文化中强制执行公历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47516515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com