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文档。