English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Одним из最主要的 преимуществ использования JSP является возможность использования всех Java API. В этой главе мы будем подробно рассматривать класс Date в Java, который находится в пакете java.util и封装яет текущую дату и время.
Класс Date имеет два конструктора. Первый конструктор initializes объект с текущей датой и временем.
Date( )
Второй конструктор принимает один параметр, который представляет количество миллисекунд с полуночи 1 января 1970 года до времени, которое нужно представить.
Date(long millisec)
После получения объекта Date Вы можете использовать все методы, перечисленные в таблице:
Номер | Метод & Описание |
---|---|
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( ) Возвращает количество миллисекунд с полуночи 1 января 1970 года до времени, представленного этим объектом |
8 | int hashCode( ) Возвращает хэш-код этого объекта |
9 | void setTime(long time) Использование заданных параметров для установки даты и времени, параметр time представляет количество миллисекунд, прошедших с полуночи 1 января 1970 года до time |
10 | String toString( ) Преобразование этого объекта в строку и возврат этой строки |
Использование JSP для программирования позволяет легко получить текущую дату и время, достаточно использовать метод toString() объекта Date, как показано ниже:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"% <%@ page import="java.io.*,java.util.*, javax.servlet.*" %> <html> <head> <title> 显示当前时间与日期 </title> </head> <body> <h1> 显示当前时间与日期 </h1> <% Date date = new Date(); out.print("<h2 align=\"center\">" + date.toString() + "</h2>"); %> </body> </html>
将上面的代码保存在 main.jsp 文件中,然后访问 http://localhost:8080/testjsp/main.jsp,运行结果如下:
Показать текущее время и дату Sat Jun 25 17:54:34 CST 2019
刷新 http://localhost:8080/testjsp/main.jsp,就可以发现每次刷新所得到的秒数都不相同。
就像我在开头所提到的,您可以在JSP脚本中使用任何Java方法。如果您想要比较两个日期,
可以参照下面的方法来做:
使用getTime()方法得到毫秒数,然后比较毫秒数就行了。
使用before(),after(),equals()方法。比如,new Date(99,2,12).before(new Date(99,2,18))返回true。
使用compareTo()方法,这个方法在Comparable接口中定义,在Date中实现。
SimpleDateFormat使用一种地区敏感的方式来格式化和解析日期,它允许您使用自定义的模式来格式化日期和时间。
对CurrentDate.jsp稍作修改,得到如下修改后的代码:
<%@ 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> 显示当前时间与日期 </title> </head> <body> <h1> 显示当前时间与日期 </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>
Перекомпилировать main.jsp, затем посетить http://localhost:8080/testjsp/main.jsp,можно получить следующий результат:
Показать текущее время и дату 2019-06-25 17:57:53
Чтобы определить строку шаблона формата, необходимо использовать форматные коды, перечисленные в таблице ниже:
Символ | Описание | Пример |
---|---|---|
G | Идентификатор эпохи | AD |
y | Четырёхзначный год | 2001 |
M | Месяц | July или 07 |
d | День | 10 |
h | 12-часовой формат, A.M./P.M. (1~12) | 12 |
H | 24-часовой формат | 22 |
m | Минуты | 30 |
s | Секунды | 55 |
S | Миллисекунды | 234 |
E | Неделя | Tuesday |
D | День в году | 360 |
F | День в неделе месяца | 2 (вторник в июле) |
w | Неделя в году | 40 |
W | Неделя в месяце | 1 |
a | Метка A.M./P.M. | PM |
k | Час в день (1~24) | 24 |
K | Час в день, A.M./P.M. (0~11) | 10 |
z | Часовой пояс | Eastern Standard Time |
' | Разделитель текста | Делimiter |
" | Одинарная кавычка | ` |
Более подробная информация о классе Date см. в документации Java API.