Как определить firstDayOfWeek для java.util. Календарь с помощью аргумента JVM

Вы можете проверить следующий подход, используя один цикл for/of. Но сначала мне нужно создать Set с действительными идентификаторами, чтобы я мог отбросить noise данные из массива test:

const data = [
    {no: 3, name: 'drink'},
    {no: 90, name: 'eat'},
    {no: 20, name: 'swim'}
];

const userArr = [3,3,3,3,3,3,3,3,7,7,9,9,3,3,3,90,20,20,20,20];

let ids = new Set(data.map(x => x.no));
let newArr = [];

for (i of userArr)
{
   let found = newArr.findIndex(x => x.num === i)

   if (found >= 0)
       newArr[found].total += 1;
   else
       ids.has(i) && newArr.push({num: i, total: 1});
}

console.log(newArr);
[119 ]

13
задан user35172 6 November 2008 в 17:12
поделиться

3 ответа

Первый день недели получен из текущей локали. Если Вы не установите локаль календаря (Calendar.getInstance (Локаль) или новый GregorianCalendar (Локаль)), то это будет использовать значение по умолчанию системы. Значение по умолчанию системы может быть переопределено параметром JVM:

public static void main(String[] args) {
    Calendar c = new GregorianCalendar();
    System.out.println(Locale.getDefault() + ": " + c.getFirstDayOfWeek());
}

Это должно показать другой вывод с различными параметрами JVM для языка/страны:

  • -Duser.language=en -Duser.country=US -> en_US: 1 (Воскресенье)
  • -Duser.language=en -Duser.country=GB -> en_GB: 2 (Понедельник)

Не забывайте, что это могло изменить другой behavio (u) r также.

16
ответ дан 1 December 2019 в 23:16
поделиться

Согласно API:

Календарь определяет определенную для локали семидневную неделю с помощью двух параметров: первый день недели и минимальные дни на первой неделе (от 1 до 7). Эти числа взяты от данных ресурсов локали, когда Календарь создается. Они могут также быть указаны явно через методы для того, чтобы установить их значения.

Таким образом, если Вы удостоверитесь, что Ваша локаль соответственно настроена, то это будет неявно установлено. Лично, я предпочел бы явно устанавливать это...

Посмотрите № 64038 для способов установить локаль из командной строки.

3
ответ дан 1 December 2019 в 23:16
поделиться

Вы попытались вызвать JVM с другой локалью? Но необходимо быть осторожными с побочными эффектами...

0
ответ дан 1 December 2019 в 23:16
поделиться
Другие вопросы по тегам:

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