Как выбрать формат $date в файле vm?

У меня есть дата $, определенная как "день недели, месяц день, год" ex: вторник, 26 февраля 2013 г.

Я не знаю, где определена $date, но мне нравится добавлять час к этой переменной $date или создавать переменную с часом, знаете ли вы, как я могу поместить ее в файл .vm?

Ответ 1

Velocity предоставляет класс DateTool для дат форматирования. Вам нужно будет поместить экземпляр этого класса в ваш контекст скорости:

context.add("date", new DateTool());

Затем вы можете использовать команду форматирования, например:

$date.format('EEE, MMM d, yyyy at ha', $myDate)

чтобы получить что-то вроде Tuesday, February 26, 2013 at 11AM

Ответ 2

Альтернативное решение, которое не требует дополнительной зависимости или модификации кода:

#set( $String = '' )##
$String.format('%1$tY%1$tm%1$td%1$tH%1$tM%1$tS', $date)

В сочетании с двумя другими ответами.

Ответ 3

Один из базовых классов Java должен помещать его в Context. Если вы хотите отформатировать дату по-другому, вы можете сделать это в этом классе.

Другим вариантом было бы поместить исходный объект Date в контекст, а затем вызвать методы в шаблоне Velocity для его форматирования. В случае необходимости вы можете передать Apache Commons DateUtils или другой вспомогательный класс в шаблон (см. этот ответ).

Ответ 4

Из документации:

Symbol   Meaning                 Presentation        Example
   ------   -------                 ------------        -------
   G        era designator          (Text)              AD
   y        year                    (Number)            1996
   M        month in year           (Text & Number)     July & 07
   d        day in month            (Number)            10
   h        hour in am/pm (1~12)    (Number)            12
   H        hour in day (0~23)      (Number)            0
   m        minute in hour          (Number)            30
   s        second in minute        (Number)            55
   S        millisecond             (Number)            978
   E        day in week             (Text)              Tuesday
   D        day in year             (Number)            189
   F        day of week in month    (Number)            2 (2nd Wed in July)
   w        week in year            (Number)            27
   W        week in month           (Number)            2
   a        am/pm marker            (Text)              PM
   k        hour in day (1~24)      (Number)            24
   K        hour in am/pm (0~11)    (Number)            0
   z        time zone               (Text)              Pacific Standard Time
   '        escape for text         (Delimiter)
   ''       single quote            (Literal)           '

   Examples: "E, MMMM d" will result in "Tue, July 24"
             "EEE, M-d (H:m)" will result in "Tuesday, 7-24 (14:12)"

Надеюсь, что поможет