English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
使用JSP最重要的优势之一,就是可以使用所有Java API。本章将会详细地讲述Java中的Date类,它在java.util包下,封装了当前日期和时间。
Date类有两个构造函数。第一个构造函数使用当前日期和时间来初始化对象。
Date( )
第二个构造函数接受一个参数,这个参数表示从1970 anos1Mês1凌晨至所要表示时间的毫秒数。
Date(long millisec)
获取Date对象后,您就能够使用下表列出的所有方法:
序号 | 方法 & Descrição |
---|---|
1 | boolean after(Date date) 如果比给定的日期晚,则返回true,否则返回false |
2 | boolean before(Date date) 如果比给定的日期早,则返回true,否则返回false |
3 | Object clone( ) 获取当前对象的一个副本 |
4 | int compareTo(Date date) 如果与给定日期相等,则返回0,如果比给定日期早,则返回一个负数,如果比给定日期晚,则返回一个正数 |
5 | int compareTo(Object obj) 与compareTo(Date)方法相同,如果obj不是Date类或其子类的对象,抛出ClassCastException异常 |
6 | boolean equals(Object date) 如果与给定日期相同,则返回true,否则返回false |
7 | long getTime( ) 返回从1970 anos1Mês1凌晨至此对象所表示时间的毫秒数 |
8 | int hashCode( ) 返回性对象的哈希码 |
9 | void setTime(long time) Use os parâmetros fornecidos para configurar a data e a hora, onde o parâmetro time representa os milissegundos desde1970 anos1Mês1milissegundos desde a meia-noite até time |
10 | String toString() Converta este objeto em uma string e retorne esta string |
A programação em JSP permite obter facilmente a data e hora atuais, usando apenas o método toString() do objeto Date, como no exemplo a seguir:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*,java.util.*, javax.servlet.*"%> <html> <head> <title>Exibir hora e data atual</title> </head> <body> <h1>Exibir hora e data atual</h1> <% Date date = new Date(); out.print("<h2 align="center">" +date.toString()+"</h2> %> </body> </html>
Salve o código acima no arquivo main.jsp e acesse http://localhost:8080/testjsp/main.jsp, os resultados são os seguintes:
Exibir a data e hora atuais Sat Jun 25 17:54:34 CST 2019
Recarregar http://localhost:8080/testjsp/main.jsppode perceber que, a cada recarregamento, os segundos obtidos são diferentes.
Como mencionei no início, você pode usar qualquer método Java no script do JSP. Se você quiser comparar duas datas:
Pode referenciar o método abaixo para fazer isso:
Use o método getTime() para obter milissegundos e, em seguida, compare os milissegundos.
Use os métodos before(), after(), equals(). Por exemplo, new Date(99,2,12).before(new Date(99,2,18)) retorna true.
Use o método compareTo(), que é definido na interface Comparable e implementado em Date.
SimpleDateFormat usa uma forma sensível a regionalidades para formatar e interpretar datas, permitindo que você use padrões personalizados para formatar datas e horários.
Faça algumas modificações no CurrentDate.jsp para obter o seguinte código modificado:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*,java.util.*"%> <%@ page import="javax.servlet.*,java.text.*"%> <html> <head> <title>Exibir hora e data atual</title> </head> <body> <h1>Exibir hora e data atual</h1> <% Date dNow = new Date(); SimpleDateFormat ft = new SimpleDateFormat("yyyy"-MM-dd HH:mm:ss"); out.print("<h2 align="center">" + ft.format(dNow) + "</h2> %> </body> </html>
Compile novamente o main.jsp e acesse http://localhost:8080/testjsp/main.jsp,resultando no seguinte:
Exibir a data e hora atuais 2019-06-25 17:57:53
Para especificar a string de padrão, é necessário usar os códigos de formato listados na tabela a seguir:
Caractere | Descrição | Exemplo |
---|---|---|
G | Identificador de Época | AD |
y | 4Ano com dígitos | 2001 |
M | Mês | Julho ou 07 |
d | Dia | 10 |
h | 12Modo 24 horas, A.M./P.M. (1~12) | 12 |
H | 24Modo 24 horas | 22 |
m | Minuto | 30 |
s | Segundo | 55 |
S | Milissegundo | 234 |
E | Domingo | Tuesday |
D | Um dia específico do ano | 360 |
F | Um dia específico da semana do mês | 2 (terceira quinta-feira em julho) |
w | Uma semana específica do ano | 40 |
W | Uma semana específica do mês | 1 |
a | A.M./Marcação P.M. | PM |
k | Uma hora específica do dia (1~24) | 24 |
K | Uma hora específica do dia, A.M./P.M. (0~11) | 10 |
z | Fuso Horário | Eastern Standard Time |
' | Separador de Texto | Delimitador |
" | Aspas Simples | ` |
Para mais detalhes sobre a classe Date, consulte a documentação do Java API.