16

我有一个 $date 定义为“星期几,月日,年”例如:2013 年 2 月 26 日,星期二

我不知道 $date 是在哪里定义的,但我喜欢将小时添加到这个 $date 变量中,或者用小时创建一个变量,你知道我怎样才能把它放在 .vm 文件中吗?

4

4 回答 4

30

Velocity 提供了一个 DateTool 类来格式化日期。您需要将此类的一个实例放入您的速度上下文中:

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

然后你可以使用格式化命令,如:

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

得到类似的东西Tuesday, February 26, 2013 at 11AM

于 2013-02-26T15:39:34.767 回答
8

不需要额外依赖或代码修改的替代解决方案:

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

结合其他两个 答案。

于 2015-06-25T18:04:43.533 回答
5

从文档中:

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)"

希望有帮助

于 2015-09-14T14:28:10.077 回答
2

支持 Java 类之一必须将其放入Context中。如果您想以不同的方式格式化日期,您可以在该课程中进行。

另一种选择是将原始 Date 对象放入上下文中,然后调用 Velocity 模板中的方法对其进行格式化。如果需要,您也可以将 Apache Commons DateUtils 或其他帮助程序类传递给模板(请参阅此答案)。

于 2013-02-26T15:41:08.110 回答