JSP 处理日期

  • 处理日期

    在本章中,我们将讨论如何在JSP中处理数据。使用JSP的最重要的优点之一是您可以使用Java核心中所有可用的方法。我们将带您进入java.util包中可用的Date类。此类封装了当前日期和时间。Date类支持两个构造函数。第一个构造函数使用当前日期和时间初始化对象。
    
    Date()
    
    以下构造函数接受一个参数,该参数等于自1970年1月1日午夜以来经过的毫秒数。
    
    Date(long millisec)
    
    一旦有Date对象可用,就可以调用以下任何一种支持方法来获取日期信息-
    方法 描述
    boolean after(Date date) 如果调用Date对象的日期晚于date指定的日期,则返回true;否则,返回false。
    boolean before(Date date) 如果调用Date对象的日期早于date指定的日期,则返回true;否则,返回false。
    Object clone( ) 复制调用日期对象。
    int compareTo(Date date) 将调用对象的值与日期进行比较。如果值相等,则返回0。如果调用对象早于日期,则返回负值。如果调用对象晚于日期,则返回正值。
    int compareTo(Object obj) 如果obj为Date类,则以与compareTo(Date)相同的方式操作。否则,它将引发ClassCastException。
    boolean equals(Object date) 如果调用Date对象包含的时间和日期与date指定的时间和日期相同,则返回true;否则,返回false。
    long getTime( ) 返回自1970年1月1日起经过的毫秒数。
    int hashCode( ) 返回调用对象的哈希码。
    void setTime(long time) 设置由时间指定的时间和日期,它表示从1970年1月1日午夜起经过的时间(以毫秒为单位)。
    String toString( ) 将调用Date对象转换为字符串并返回结果。
  • 获取当前日期和时间

    使用JSP程序,很容易获得当前日期和时间。您可以将简单的Date对象与toString()方法一起使用,以打印当前日期和时间,如下所示:
    
    <%@ page import = "java.io.*,java.util.*, javax.servlet.*" %>
    
    <html>
       <head>
          <title>Display Current Date & Time</title>
       </head>
       
       <body>
          <center>
             <h1>Display Current Date & Time</h1>
          </center>
          <%
             Date date = new Date();
             out.print( "<h2 align = \"center\">" +date.toString()+"</h2>");
          %>
       </body>
    </html>
    
    尝试一下
  • 日期比较

    如前几节所述,您可以在JSP脚本中使用所有可用的Java方法。如果您需要比较两个日期,请考虑以下方法-
    • 您可以使用getTime()方法来获取两个对象自1970年1月1日午夜以来经过的毫秒数,然后比较这两个值。
    • 您可以使用before()after()equals()方法,因为该月的12号要早于18号。例如,new Date(99,2,12).before(new Date(99,2,18))返回true。
    • 您可以使用compareTo()方法;此方法由Comparable接口定义,并由Date实现。
  • 使用SimpleDateFormat格式化日期

    SimpleDateFormat 是一个具体的类,用于以对语言环境敏感的方式来格式化和解析日期。SimpleDateFormat允许您从选择任何用户定义的日期时间格式模式开始。
    让我们修改以上示例,如下所示:
    
    <%@ page import = "java.io.*,java.util.*" %>
    <%@ page import = "javax.servlet.*,java.text.*" %>
    
    <html>
       <head>
          <title>Display Current Date & Time</title>
       </head>
       
       <body>
          <center>
             <h1>显示当前时间和日期</h1>
          </center>
          <%
             Date dNow = new Date( );
             SimpleDateFormat ft = 
             new SimpleDateFormat ("yyyy.MM.dd  hh:mm:ss a zzz");
             out.print( "<h2 align=\"center\">" + ft.format(dNow) + "</h2>");
          %>
       </body>
    </html>
    
    尝试一下
  • SimpleDateFormat格式化代码

    要指定时间格式,请使用时间模式字符串。在此模式中,所有ASCII字母均保留为模式字母,定义如下:
    代码 描述 例子
    G 时代代号 AD
    y 四位数年份 2001
    M 一年中的月份 July or 07
    d 每月的一天 0
    h 上午/下午 (1〜12) 2
    H 一天中的小时(0〜23) 22
    m 一小时 30
    s 分钟 55
    S 毫秒 234
    E 星期几 Tuesday
    D 一年中的一天 360
    F 每月的星期几 2 (second Wed. in July)
    w 一年中的一周 40
    W 每月的周  
    a 上午下午。 记号笔 PM
    k 一天中的小时(1〜24) 24
    K 上午/下午 (0〜11) 0
    z 时区东部标准 Time
    ' 转义文字 Delimiter
    " 单引号 `
    有关可用于操作日期的常量可用方法的完整列表,请参阅标准Java文档。