如何在vm文件中选择$ date的格式?

aF.*_*aF. 13 java velocity

我有一个$ date定义为"星期几,月份日,年"ex:2013年2月26日星期二

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

Ste*_*ler 24

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

context.add("date", new DateTool());
Run Code Online (Sandbox Code Playgroud)

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

$date.format('EEE, MMM d, yyyy at ha', $myDate)
Run Code Online (Sandbox Code Playgroud)

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

  • 如果是这种情况,则DateTool不在您的VelocityContext中.在你的java文件中编辑你的速度上下文:`context.add("date",new DateTool());` (7认同)

Vad*_*zim 7

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

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

结合其他两个 答案.


Mat*_*ich 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)"
Run Code Online (Sandbox Code Playgroud)

希望有帮助