Как получить день (например, понедельник) с момента Мгновенное в FreeMarker - PullRequest
0 голосов
/ 17 мая 2018

Итак, я получил эту Мгновенную дату на Java: «2018-05-19T22: 00: 00Z».

Как я могу получить день недели? как понедельник ..

Я пытался это, но это не работает:

${date?string["EEEE"]}

Спасибо

Ответы [ 3 ]

0 голосов
/ 17 мая 2018

Я бы посоветовал вам использовать новый API времени и даты, определенный в Java 8. Используя API времени и даты, вы можете легко получить все данные, относящиеся к дате и времени.

Java 8 определила отдельный Enum для обработки дней недели с именем - DayOfWeek (java.time.DayOfWeek)

java.time.DayOfWeek - это Enum, который определяет 7 констант, представляющих семь дней недели - понедельник (int значение = 1), вторник (2), среда (3) ... до воскресенья (7).

import java.time.*;

public class Java8Tester {

   public static void main(String args[]) {
      Java8Tester java8tester = new Java8Tester();
      java8tester.testLocalDateTime();
   }

   public void testLocalDateTime() {
      // Get the current date and time
      LocalDateTime currentTime = LocalDateTime.parse("2018-05-19T22:00:00");
      System.out.println("Current DateTime: " + currentTime);


    DayOfWeek dayOfWeek = currentTime.getDayOfWeek();
    System.out.println(currentTime + " was a " + dayOfWeek);
   }
}
0 голосов
/ 17 мая 2018

На данный момент FreeMarker не поддерживает Java 8, см. Страницу contrib :

Что я должен внести?

Обычно участники приходят, потому что хотят исправить / улучшить определенную вещь. Но если вы просто хотите помочь в целом, вот несколько тем ...

  • Поддержка Java 8 дата / время API (на самом деле это, безусловно, сложный). Обратите внимание, что для этого есть стороннее решение, https://github.com/amedia/freemarker-java-8,, но оно не такое простое, как собственное решение.
  • ...

Чтобы вы могли проверить стороннее решение.

Смотри также:

0 голосов
/ 17 мая 2018

${date?string["EEEE"]} работает нормально, если date является java.util.Date объектом.

Вы можете проверить это следующим образом:

<#assign date = .now>
${date?string["EEEE"]}

Я полагаю, что это не работает, потому что ваш date - это String, в этом случае вы должны проанализировать его в Java (на стороне сервера) и выставить переменную java.util.Date в шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...