как на прописную дату и месяц первую букву ToLongDateString () приводят к es-mx Культуре?

В Java есть вещи, называемые «областями видимости» между круглыми скобками. Переменная, созданная в одной области, не может быть доступна из другой области. Примером является переменная, которую вы используете здесь. Что вы можете сделать, так это то, что вы можете либо вызвать метод из другого метода и получить возвращаемое значение для «пользователя», либо передать переменную в одной области видимости в качестве параметра для другого метода. Ниже я продемонстрирую на примере ar mini:

public static void scopeOne() {
    String myName = "name";
}

public static void scopeTwo() {
    System.out.println(myName);
}

Очевидно, что это не сработает, поскольку вы не можете получить доступ к myName из scopeOne в scopeTwo таким образом. Вы получите ошибку во время компиляции. Вы можете решить эту проблему различными способами, но вот один пример:

public static void scopeOne() {
    String myName = "name";
    scopeTwo(myName);
}

public static void scopeTwo(String myName) {
    System.out.println(myName);
}

Вы можете передать переменную методу в качестве аргумента и сделать переменную параметром. Таким образом, он может находиться в локальной области метода, который вы пытаетесь вызвать. Еще вы можете сделать переменную объекта User переменной класса или экземпляра, а затем обновить ее в своих методах.

6
задан Oscar Cabrero 23 October 2008 в 04:35
поделиться

4 ответа

Вы не должны создавать свою собственную культуру. Только необходимо изменить свойство DateTimeFormat. DayNames и DateTimeFormat. MonthNames в текущей культуре.

т.е.

        string[] newNames = { "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo" };
        Thread.CurrentThread.CurrentCulture.DateTimeFormat.DayNames = newNames;

Однако странно, что en-США показывают месяцы и дни с первой прописной буквой и для mx-ES нет.

Надежда это помогает!.

8
ответ дан 10 December 2019 в 02:55
поделиться

Шаблон LongDate для испанского языка (Мексика)

dddd, dd' de 'MMMM' de 'yyyy

согласно Потоку. CurrentThread. CurrentCulture. DateTimeFormat. LongDatePattern. Я предполагаю, что просто необходимо вручную преобразовать первые буквы дня и месяца к верхнему регистру, или можно использовать Поток. CurrentThread. CurrentCulture. TextInfo. ToTitleCase и затем заменяют "De" "de".

1
ответ дан 10 December 2019 в 02:55
поделиться

сначала два Решения хорошо работают, но что, если мы хотели бы расширить это до культуры, таким образом, я придумал этот подход, я изменяю текущие массивы времени даты культуры в TitleCase

private void SetDateTimeFormatNames()
        {

            Thread.CurrentThread.CurrentCulture.DateTimeFormat.DayNames = ConvertoToTitleCase(Thread.CurrentThread.CurrentCulture.DateTimeFormat.DayNames);
            Thread.CurrentThread.CurrentCulture.DateTimeFormat.MonthNames = ConvertoToTitleCase(Thread.CurrentThread.CurrentCulture.DateTimeFormat.MonthNames);

        }

private string[] ConvertoToTitleCase(string[] arrayToConvert)
            {
                for (int i = 0; i < arrayToConvert.Length; i++)
                {
                    arrayToConvert[i] = Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(arrayToConvert[i]);
                }

                return arrayToConvert;
            }

как это может быть улучшено с Циклом?

0
ответ дан 10 December 2019 в 02:55
поделиться

немного поздно, но эта работа для меня!

 public static string GetFecha()
    {
        System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("es-EC");
        System.Threading.Thread.CurrentThread.CurrentCulture = culture;

        // maldita sea!
        string strDate = culture.TextInfo.ToTitleCase(DateTime.Now.ToLongDateString());

        return strDate.Replace("De", "de");


    }
0
ответ дан 10 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

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