Как выбрать формат $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)"
Надеюсь, что поможет