English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Processamento de Data JSP

使用JSP最重要的优势之一,就是可以使用所有Java API。本章将会详细地讲述Java中的Date类,它在java.util包下,封装了当前日期和时间。

Date类有两个构造函数。第一个构造函数使用当前日期和时间来初始化对象。

Date( )

第二个构造函数接受一个参数,这个参数表示从1970 anos1Mês1凌晨至所要表示时间的毫秒数。

Date(long millisec)

获取Date对象后,您就能够使用下表列出的所有方法:

序号方法 & Descrição
                1boolean after(Date date) 如果比给定的日期晚,则返回true,否则返回false
                2boolean before(Date date) 如果比给定的日期早,则返回true,否则返回false
                3Object clone( ) 获取当前对象的一个副本
                4int compareTo(Date date) 如果与给定日期相等,则返回0,如果比给定日期早,则返回一个负数,如果比给定日期晚,则返回一个正数
                5int compareTo(Object obj) 与compareTo(Date)方法相同,如果obj不是Date类或其子类的对象,抛出ClassCastException异常
                6boolean equals(Object date) 如果与给定日期相同,则返回true,否则返回false
                7long getTime( ) 返回从1970 anos1Mês1凌晨至此对象所表示时间的毫秒数
                8int hashCode( ) 返回性对象的哈希码
                9void 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
                10String toString() Converta este objeto em uma string e retorne esta string

    Obter data e hora atuais

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.

Comparação de datas

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.

    Use SimpleDateFormat para formatar datas

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

Códigos de Formato SimpleDateFormat

Para especificar a string de padrão, é necessário usar os códigos de formato listados na tabela a seguir:

CaractereDescriçãoExemplo
                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.