Я использую DateTime.Now.ToString("MMMM")
, чтобы получить полное имя текущего месяца. Это хорошо работает, но я понимаю это на иврите.
Есть ли возможность управлять выходным языком?
Мне нужно, чтобы это был английский.
Получить полное название месяца на английском языке
Ответ 1
Вы можете передать объект CultureInfo
в качестве аргумента DateTime.ToString()
:
CultureInfo ci = new CultureInfo("en-US");
var month = DateTime.Now.ToString("MMMM", ci);
// alternatively you can use CultureInfo.InvariantCulture:
var month = DateTime.Now.ToString("MMMM", CultureInfo.InvariantCulture);
Ответ 2
Перейдите в культуру, в которой вы хотите отформатировать имя. Вот так:
DateTime.Now.ToString("MMMM", new CultureInfo("en-GB"));
Ответ 3
Альтернативный вариант для других плакатов:
int month = DateTime.Now.Month;
// Or use CultureInfo.InvariantCulture if you want
CultureInfo usEnglish = new CultureInfo("en-US");
DateTimeFormatInfo englishInfo = usEnglish.DateTimeFormat;
string monthName = englishInfo.MonthNames[month - 1];
Я не говорю об этом лучше или хуже, чем что-либо еще - просто альтернатива.
Ответ 4
Используйте перегрузку, которая принимает значение IFormatProvider
:
CultureInfo culture = new CultureInfo("en-GB");
DateTime.Now.ToString("MMMM", culture));
Ответ 5
Вы можете установить культуру потока:
DateTime dt = DateTime.Now;
// Sets the CurrentCulture property to U.S. English.
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
// Displays dt, formatted using the ShortDatePattern
// and the CurrentThread.CurrentCulture.
Console.WriteLine(dt.ToString("MMMM"));
Или вы можете передать CultureInfo
в функцию DateTime.ToString()
.
// Creates a CultureInfo for U.S. English.
CultureInfo ci = new CultureInfo("en-US");
// Displays dt, formatted using the ShortDatePattern
// and the CultureInfo.
Console.WriteLine(dt.ToString("MMMM", ci));
Обратите внимание, что вы также можете выбрать CultureInfo.InvariantCulture
.
Ответ 6
вы можете использовать CultureInfo.CreateSpecificCulture(CultureName)
для получения имени месяца на разных языках.
Обратитесь this
Создает CultureInfo, который представляет определенную культуру, связанную с указанным именем.
string MonthName = DateTime.Now.ToString("MMMM", CultureInfo.CreateSpecificCulture(CultureName));
Список предопределенных имен культуры см. в Справочник по API поддержки национальных языков (NLS) в Глобальном центре разработчиков Go
// CULTURE SPECIFIC CULTURE
// Invariant Language (Invariant Country)
// af Afrikaans af-ZA
// am Amharic am-ET
// ar Arabic ar-SA
// arn Mapudungun arn-CL
// as Assamese as-IN
// az Azerbaijani az-Latn-AZ
// az-Cyrl Azerbaijani (Cyrillic) az-Cyrl-AZ
// az-Latn Azerbaijani (Latin) az-Latn-AZ
// ba Bashkir ba-RU
// be Belarusian be-BY
// bg Bulgarian bg-BG
// bn Bengali bn-IN
// bo Tibetan bo-CN
// br Breton br-FR
// bs Bosnian bs-Latn-BA
// bs-Cyrl Bosnian (Cyrillic) bs-Cyrl-BA
// bs-Latn Bosnian (Latin) bs-Latn-BA
// ca Catalan ca-ES
// co Corsican co-FR
// cs Czech cs-CZ
// cy Welsh cy-GB
// da Danish da-DK
// de German de-DE
// dsb Lower Sorbian dsb-DE
// dv Divehi dv-MV
// ...
// ta Tamil ta-IN
// te Telugu te-IN
// tg Tajik tg-Cyrl-TJ
// tg-Cyrl Tajik (Cyrillic) tg-Cyrl-TJ
// th Thai th-TH
// tk Turkmen tk-TM
// tn Setswana tn-ZA
// tr Turkish tr-TR
// tt Tatar tt-RU
// tzm Tamazight tzm-Latn-DZ
// tzm-Latn Tamazight (Latin) tzm-Latn-DZ
// ug Uyghur ug-CN
// uk Ukrainian uk-UA
// ur Urdu ur-PK
// uz Uzbek uz-Latn-UZ
// uz-Cyrl Uzbek (Cyrillic) uz-Cyrl-UZ
// uz-Latn Uzbek (Latin) uz-Latn-UZ
// vi Vietnamese vi-VN
// wo Wolof wo-SN
// xh isiXhosa xh-ZA
// yo Yoruba yo-NG
// zh Chinese zh-CN
// zh-CHS Chinese (Simplified) Legacy zh-CN
// zh-CHT Chinese (Traditional) Legacy zh-HK
// zh-Hans Chinese (Simplified) zh-CN
// zh-Hant Chinese (Traditional) zh-HK
// zu isiZulu zu-ZA