我们有一个asp.net核心网站,需要提供不同的文化,但由于日历不同,我们在将日期保存到数据库时遇到问题。
即使文化被改变,我们如何执行公历呢?
%let items = LONDON,NEW YORK,CHICAGO,HOUSTON;
%let pres = SUPER,SUB,GREATER,LESSER,EAST,WEST;
data many;
do row = 1 to 100;
item = catx('_',scan("&pres",ceil(6*ranuni(123))), scan("&items",ceil(4*ranuni(123)),','));
output;
end;
run;
data target;
item = "NEW YORK"; output;
item = "LONDON"; output;
run;
proc sql;
create table items_like_target as
select * from many
where exists (select * from target where many.item contains trim(target.item))
;
quit;
我们想要的是让“ar”或任何其他文化使用“en”dateformat ...
谢谢
答案 0 :(得分:0)
嗯,您可以随时使用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视图中,您可以为Views/_ViewImports.cshtml
/ 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();
所示