【发布时间】:2013-02-26 15:03:13
【问题描述】:
我将 $date 定义为“星期几、月份日期、年份”,例如:2013 年 2 月 26 日,星期二
我不知道 $date 是在哪里定义的,但我喜欢将小时添加到这个 $date 变量中,或者创建一个带有小时的变量,你知道如何将它放在 .vm 文件中吗?
【问题讨论】:
我将 $date 定义为“星期几、月份日期、年份”,例如:2013 年 2 月 26 日,星期二
我不知道 $date 是在哪里定义的,但我喜欢将小时添加到这个 $date 变量中,或者创建一个带有小时的变量,你知道如何将它放在 .vm 文件中吗?
【问题讨论】:
Velocity provides a DateTool class 用于格式化日期。您需要将此类的一个实例放入您的速度上下文中:
context.add("date", new DateTool());
然后你可以使用如下格式命令:
$date.format('EEE, MMM d, yyyy at ha', $myDate)
得到类似Tuesday, February 26, 2013 at 11AM的东西
【讨论】:
context.add("date", new DateTool());
【讨论】:
format。
来自文档:
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)"
希望有帮助
【讨论】:
其中一个支持 Java 类必须将其放入 Context。如果您想以不同的方式格式化日期,您可以在该课程中进行。
另一种选择是将原始 Date 对象放入上下文中,然后调用 Velocity 模板中的方法对其进行格式化。如果需要,您也可以将 Apache Commons DateUtils 或其他辅助类传递给模板(请参阅this answer)。
【讨论】:
$date的类型是什么?如果不确定,请将 $date.getClass() 放入您的 .vm。如果它是一个字符串,那么不,你必须在 Java 端进行格式化。如果它是一个日期,那么是的,你可以调用 .vm 中的方法来格式化它。