Принудительная культура консольной команды - PullRequest
3 голосов
/ 04 января 2010

Я хочу выполнить сценарий msbuild с использованием определенной культуры (en-US), поскольку одна из задач - попытка вызова веб-службы с использованием aDateTime.ToShortDateString () в качестве параметра, и моя текущая культура несовместима с сервером (английский) формат.

Как это сделать без изменения моих региональных настроек?

Ответы [ 2 ]

2 голосов
/ 06 января 2010

Я закончил тем, что создал специальную задачу для изменения текущей культуры следующим образом:

public class ChangeCulture : Task
{
    [Required]
    public string Culture { get; set; }

    public override bool Execute()
    {
        Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(Culture);

        return true;
    }
}
0 голосов
/ 04 января 2010

Если вы хотите изменить культуру всего приложения, вы можете установить культуру при запуске приложения следующим образом:

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false);

Вы можете прочитать о настройке MSDN .

Однако, учитывая ваш пример, это может быть излишним.Если вы пытаетесь изменить только ToShortDateString () на en-US, может быть более простой способ.Вместо этого вы можете использовать метод ToString () и передать в определенном формате, например, вы можете сделать:

aDateTime.ToString("MM/dd/yyyy");

Более конкретно, вы можете использовать предопределенную информацию о культуре с System.Globalization, например:1011 *

System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");
string datePattern = culture.DateTimeFormat.ShortDatePattern;
string shortDate = aDateTime.ToString(datePattern);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...