Изменение Формата даты к en-us, в то время как культура является франком приблизительно

Я работаю над локализацией веб-сайта на французском языке. Однако я, как предполагается, не изменяю формат даты на французский язык. Это должно остаться согласно en-us формату, даже если культура установлена на франк приблизительно т.е., когда отдых содержания находится на французском языке, формат даты должен все еще быть на английском языке (en-us).

9
задан lexu 25 March 2010 в 06:48
поделиться

5 ответов

На удивление, я получил очень простой ответ. При настройке Culture и UICulture, все, что мне нужно сделать, это установить свойство Culture в en-us always. Это приведет к тому, что формат даты будет всегда отображаться на английском языке.

1
ответ дан 4 December 2019 в 11:41
поделиться

Чтобы изменить формат дат, вы можете создать пользовательский CultureInfo на основе существующего CultureInfo (в вашем случае "fr-CA "), изменяя только форматы даты. У меня нет опыта в этом, но связанная статья и эта статья объясняют, как это делается. Якобы это не так уж и сложно.

Я полагаю, что установка System.Threading.Thread.CurrentThread.CurrentCulture для экземпляра вашего настраиваемого CultureInfo (например, в событии Page.Load) должна сработать.


Или используйте класс CultureInfo, чтобы указать язык и региональные параметры для каждой строки:

CultureInfo culture = new CultureInfo("en-US");

Каждый раз, когда вы пишете дату на странице, используйте следующий синтаксис:

myDate.ToString("d", culture);

или

string.Format(
  culture,
  "This is a string containing a date: {0:d}",
  myDate);

CultureInfo класс находится в пространстве имен System.Globalization , а d в приведенном выше формате - это формат вывода даты. См. Шпаргалку Джона Шихана «Краткий справочник по строкам формата .NET» для получения дополнительной информации о строках формата.

9
ответ дан 4 December 2019 в 11:41
поделиться

В строке при отображении даты выполните следующие действия:

CultureInfo ci = new CultureInfo("en-US");
string s = dateTimeObject.ToString(ci);

Это упрощенный пример, однако вам просто нужно выполнить необходимую работу, которую вы хотите выполнить с объектом DateTime .

2
ответ дан 4 December 2019 в 11:41
поделиться

Вот приведенный выше код в виде сниппета кода :

CultureInfo ci = new CultureInfo("fr-ca"); 

DateTimeFormatInfo dateformat = new DateTimeFormatInfo();



dateformat.FullDateTimePattern = "dddd, mmmm dd, yyyy h:mm:ss tt";// Date format of en-us



ci.DateTimeFormat = dateformat; 

CultureAndRegionInfoBuilder obj = new CultureAndRegionInfoBuilder("fr-ca", CultureAndRegionModifiers.Replacement);


 obj.LoadDataFromCultureInfo(ci); 

obj.Register();
1
ответ дан 4 December 2019 в 11:41
поделиться

Спасибо, ребята, !!!! Кажется, что ваши сугессы работают на меня. Я попытался создать пользовательский формат, который расширяет возможности fr-ca и изменяет формат даты на en-us. Вот код

CultureInfo ci = new CultureInfo("fr-ca");
DateTimeFormatInfo dateformat = new DateTimeFormatInfo();
dateformat.FullDateTimePattern = "dddd, mmmm dd, yyyy h:mm:ss tt";// Date format of en-us
ci.DateTimeFormat = dateformat;
CultureAndRegionInfoBuilder obj = new CultureAndRegionInfoBuilder("fr-ca", CultureAndRegionModifiers.Replacement);
obj.LoadDataFromCultureInfo(ci);
obj.Register();

Как только код зарегистрирует новый fr-ca, формат даты fr-ca будет таким же, как и у en-us. Код можно использовать в Page_Load.

2
ответ дан 4 December 2019 в 11:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: