Метод аффинного масштабирования в Matlab

    LocalDate date4 = ZonedDateTime
            .parse(date, DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH))
            .toLocalDate();
    java.sql.Date date5 = java.sql.Date.valueOf(date4);

Я использую современные классы в пакете java.time. Вы заметили, что код не только проще, как только вы знакомы с текстом нового стиля, но и понятным.

Если вы хотите быть на 100% современным, вы также должны проверить будет ли ваш последний MySQL JDBC-драйвер не принимать LocalDate напрямую без преобразования в java.sql.Date. Это необходимо.

Несколько примечаний к примечанию

  • Если вам нужно, чтобы ваш код запускался на компьютерах вне вашего контроля, всегда дайте языковой стандарт вашему форматированию, или ваша строка даты не может анализируется на компьютере с неанглоязычным языком. Вы можете использовать Locale.ROOT для языковой нейтральной локали (это говорит по-английски).
  • Если вы можете, избегайте аббревиатур из трех букв часового пояса. Многие неоднозначны. EET - это всего лишь половина часового пояса, так как некоторые места, где он используется, теперь находятся на EEST (летнее время). Лучше использовать либо длинный идентификатор зоны времени, например Europe/Bucharest, либо смещение от UTC, как +02:00.

Эти точки действительны независимо от того, используете ли вы DateTimeFormatter или SimpleDateFormat .

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

    SimpleDateFormat formatnow 
            = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); 
    SimpleDateFormat formatneeded = new SimpleDateFormat("yyyy-MM-dd");

Я использую строчные буквы zzz, так как это документируется в соответствии с трехбуквенным именем часового пояса, я знаю, что работает верхний регистр ZZZ. Я добавил локаль. И, возможно, самое главное, в нужном формате я изменил YYYY (недельный год) на yyyy (календарный год) и DD (день года) на dd (день месяца). Все эти буквы находятся в документации .

0
задан Govind Parashar 20 March 2019 в 14:12
поделиться

1 ответ

Я не знаю, что ваша функция должна делать, потому что нет объяснений, но для решения этого вида линейного уравнения с ограничениями вы можете использовать linprog

% define the constraints
% Every constraints have this format: x1*x(1) + x2*x(2) ≤ n
% Where x(1) and x(2) are your variable and x1,x2 and n are integers.
A = [1 3
    3 4
    -1 0
     0 -1
    -1 0];

b = [60 120 -10 0 0];
% define the objective function
f = [-3 -5];
% solve
x = linprog(f,A,b)

Результат:

x = 
    24
    12

Заметил, что я поменял знак целевой функции, чтобы максимизировать решение (по умолчанию linprog минимизирует решение)

0
ответ дан obchardon 20 March 2019 в 14:12
поделиться
Другие вопросы по тегам:

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