Asp.net core 在Abp framework.NET Core 3中使用非英语文化的公历日期
更改ASP.net样板文件(.net core 3带角度)中的语言时,UI中的日期已更改为Ar区域性。我想使用带Ar区域性的格里高利日期。 我在下面的建议中找到了没有很多变通方法的直接解决方案,但我不喜欢这样的解决方案 编辑(更多详细信息): 在Abp框架中,有一个多语言选项,因此当我将语言切换为阿拉伯语时,整个系统文化切换为带有Hijri日期格式的阿拉伯语文化,我想将系统更改为带有gregorian日期的阿拉伯语文化,我该如何做?如果有自定义代码,我应该将其放在哪里(例如在Startup.cs类中)因为我尝试过自定义代码,但系统在Startup.cs类的Configure函数中不接受它 Startup.cs类代码Asp.net core 在Abp framework.NET Core 3中使用非英语文化的公历日期,asp.net-core,aspnetboilerplate,asp.net-boilerplate,Asp.net Core,Aspnetboilerplate,Asp.net Boilerplate,更改ASP.net样板文件(.net core 3带角度)中的语言时,UI中的日期已更改为Ar区域性。我想使用带Ar区域性的格里高利日期。 我在下面的建议中找到了没有很多变通方法的直接解决方案,但我不喜欢这样的解决方案 编辑(更多详细信息): 在Abp框架中,有一个多语言选项,因此当我将语言切换为阿拉伯语时,整个系统文化切换为带有Hijri日期格式的阿拉伯语文化,我想将系统更改为带有gregorian日期的阿拉伯语文化,我该如何做?如果有自定义代码,我应该将其放在哪里(例如在Startup.c
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
/*****************************************************************************/
CultureInfo myCIintl = new CultureInfo("ar-SA", false);
Calendar[] myOptCals = new CultureInfo("ar-SA").OptionalCalendars;
// Checks which ones are GregorianCalendar then determines the GregorianCalendar version.
Console.WriteLine("The ar-SA culture supports the following calendars:");
foreach (Calendar cal in myOptCals)
{
if (cal.GetType() == typeof(GregorianCalendar))
{
GregorianCalendar myGreCal = (GregorianCalendar)cal;
myCIintl.DateTimeFormat.Calendar = myGreCal;
GregorianCalendarTypes calType = myGreCal.CalendarType;
Console.WriteLine(" {0} ({1})", cal, calType);
}
else
{
Console.WriteLine(" {0}", cal);
}
}
/*****************************************************************************/
app.UseAbp(options => { options.UseAbpRequestLocalization = false; }); // Initializes ABP framework.
app.UseCors(_defaultCorsPolicyName); // Enable CORS!
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAbpRequestLocalization();
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<AbpCommonHub>("/signalr");
endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute("defaultWithArea", "{area}/{controller=Home}/{action=Index}/{id?}");
});
// Enable middleware to serve generated Swagger as a JSON endpoint
app.UseSwagger();
// Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.)
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint(_appConfiguration["App:ServerRootAddress"].EnsureEndsWith('/') + "swagger/v1/swagger.json", "MyApp API V1");
options.IndexStream = () => Assembly.GetExecutingAssembly()
.GetManifestResourceStream("MyApp .Web.Host.wwwroot.swagger.ui.index.html");
}); // URL: /swagger
}
public void配置(IApplicationBuilder应用程序,ILoggerFactory loggerFactory)
{
/*****************************************************************************/
CultureInfo myCIintl=新的CultureInfo(“ar SA”,false);
日历[]个人日历=新文化信息(“ar SA”)。可选日历;
//检查哪些是GregorianCalendar,然后确定GregorianCalendar版本。
WriteLine(“ar SA区域性支持以下日历:”);
foreach(日历校准,以近视为单位)
{
if(cal.GetType()==typeof(gregorianalendar))
{
GregorianCalendar myGreCal=(GregorianCalendar)cal;
myCIintl.DateTimeFormat.Calendar=myGreCal;
GregorianCalendarTypes calType=myGreCal.CalendarType;
WriteLine(“{0}({1})”,cal,calType);
}
其他的
{
Console.WriteLine(“{0}”,cal);
}
}
/*****************************************************************************/
app.UseAbp(options=>{options.UseAbpRequestLocalization=false;});//初始化ABP框架。
app.UseCors(_defaultCorsPolicyName);//启用CORS!
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAbpRequestLocalization();
app.UseEndpoints(端点=>
{
端点.MapHub(“/signalr”);
MapControllerOute(“默认值”,“{controller=Home}/{action=Index}/{id?}”);
MapControllerOute(“defaultWithArea”,“{area}/{controller=Home}/{action=Index}/{id?}”);
});
//使中间件能够将生成的Swagger作为JSON端点提供服务
app.UseSwagger();
//使中间件能够服务于招摇过市的ui资产(HTML、JS、CSS等)
app.UseSwaggerUI(选项=>
{
options.SwaggerEndpoint(_appConfiguration[“App:ServerRootAddress”].EnsureEndsWith(“/”)+“swagger/v1/swagger.json”,“MyApp API v1”);
options.IndexStream=()=>Assembly.getExecutionGassembly()
.GetManifestResourceStream(“MyApp.Web.Host.wwwroot.swagger.ui.index.html”);
});//URL:/swagger
}
我找到了解决方案(简易解决方案):
首先,如果您想了解有关日期和日历回顾的丰富信息,但我所做的是:
1-转到AbpLanguages数据库表并删除所有记录
2-在DefaultLanguageCreator类中,将ar更改为ar EG,因为ar区域性的默认日历为System.Globalization.UmAlQuraCalendar,但ar EG区域性的默认日历为System.Globalization.GregorianCalendar(我想要的日历)
3-然后清洁、重建溶液
4-不要忘记将XML本地化文件中的区域性更改为ar-EG。我找到了解决方案(简易解决方案):
首先,如果您想了解有关日期和日历回顾的丰富信息,但我所做的是:
1-转到AbpLanguages数据库表并删除所有记录
2-在DefaultLanguageCreator类中,将ar更改为ar EG,因为ar区域性的默认日历为System.Globalization.UmAlQuraCalendar,但ar EG区域性的默认日历为System.Globalization.GregorianCalendar(我想要的日历)
3-然后清洁、重建溶液
4-不要忘记将XML本地化文件中的区域性更改为ar-EG。样板文件只是一个第三方框架。它不会改变ASP.NET核心本身处理日期的方式。你到底想做什么?我怀疑有很多重复的问题会说“你不能那样做”。PS:该页上的证书已过期。在问题本身中解释你想要什么PPS:鉴于样板文件是一个ASP.NET框架,而且链接显然是一个PHP页面,返回证书过期错误,不要期望人们用除hazmat Suits之外的任何东西来触摸该链接。你检查过了吗?日期没有文化,它们有日历。DateTime在内部被视为公历日期,而与日历无关。也许您所需要做的就是更改用于显示日期的格式字符串?或者使用一个使用不同日期格式字符串的自定义区域性?@PanagiotisKanavos比您,我添加了更多详细信息,请您检查一下好吗?有什么新信息吗?样板文件只是一个第三方框架。它不会改变ASP.NET核心本身处理日期的方式。你到底想做什么?我怀疑有很多重复的问题会说“你不能那样做”。PS:该页上的证书已过期。请在问题本身中解释您想要什么pps:假设样板文件是一个ASP.NET框架,并且该链接显然是一个PHP页面,那么它将返回一个