Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime ASP.NET核心日期/时间本地化_Datetime_Asp.net Core_Model View Controller_Format_Asp.net Core Localization - Fatal编程技术网

Datetime ASP.NET核心日期/时间本地化

Datetime ASP.NET核心日期/时间本地化,datetime,asp.net-core,model-view-controller,format,asp.net-core-localization,Datetime,Asp.net Core,Model View Controller,Format,Asp.net Core Localization,我正在我的ASP.NET Core 3.1 MVC应用程序中实现本地化,以支持UI中的多种语言,但由于每个文化使用的日历不同,我遇到了一些问题。如何为所有文化设置公历类型 这是我在startup.cs中的ConfigureServices方法: public void配置服务(IServiceCollection服务) { var cultures=new[] { 新文化信息(“ar”), 新文化信息(“en”) }; services.AddDbContext(选项=> options.Use

我正在我的ASP.NET Core 3.1 MVC应用程序中实现本地化,以支持UI中的多种语言,但由于每个文化使用的日历不同,我遇到了一些问题。如何为所有文化设置公历类型

这是我在
startup.cs
中的
ConfigureServices
方法:

public void配置服务(IServiceCollection服务)
{
var cultures=new[]
{
新文化信息(“ar”),
新文化信息(“en”)
};
services.AddDbContext(选项=>
options.UseSqlServer(
Configuration.GetConnectionString(“DefaultConnection”)
)
);
services.AddDefaultIdentity(options=>options.SignIn.RequireConfirmedAccount=true)
.AddEntityFrameworkStores();
services.AddControllersWithViews();
services.AddRazorPages()
.AddExpressLocalization(
ops=>
{
ops.ResourcesPath=“本地化资源”;
ops.RequestLocalizationOptions=o=>
{
o、 支持的文化=文化;
o、 支持教育=文化;
o、 DefaultRequestCulture=新的RequestCulture(“en”);
};
}
);
}

事实证明,您可以通过其
DateTimeForm
属性更改
CultureInfo
的日历。大概是这样的:

var-supportedCultures=新列表{};
var ar=新文化信息(“ar”);
ar.DateTimeFormat.ShortDatePattern=“dd/MM/yyyy”;
ar.DateTimeFormat.DateSeparator=“/”;
ar.DateTimeFormat.Calendar=新的GregorianCalendar();
支持的文化。添加(ar);

您可以更改区域性的日历

因此,对于您的示例,以下代码将“ar”区域性更改为使用公历

CultureInfo ar=CultureInfo.CreateSpecificCulture(“ar”);
ar.DateTimeFormat.Calendar=新的GregorianCalendar();
var cultures=new[]
{
应收账,
新文化信息(“en”)
};
日历和文化信息文档


你可以使用数据类型模板在你的应用程序中使用一种日期格式,这就是你想要的吗?不完全是。虽然我现在意识到我的问题来自于阿拉伯语本地化使用的日历与英语日历不同。我更新了我的问题以反映这一点。谢谢你的评论。