Текущая дата и время JSP
⚡ Умное резюме
Обработка дат в JSP основана на стандартном ядре библиотеки. JavaТаким образом, класс java.util.Date и его конструкторы можно вызывать непосредственно из скриптлета или тега выражения для вывода текущей даты и времени на страницу.

Обработка дат JSP
Главное преимущество JSP заключается в том, что все методы ядра Java Может использоваться в JSP.
В этом разделе мы будем использовать Date класс java.util пакет, который хранит дату и время в одном объекте. Класс доступен в каждом JSP страница сразу после импорта пакета с директивой page.
Он поддерживает два конструктора:
| Конструктор | Что она делает |
|---|---|
Date() |
Это позволяет нам узнать текущую дату и время. |
Date(long millisec) |
Для этого требуется параметр в миллисекундах, прошедших с 1 января 1970 года. |
Date Этот класс также предоставляет доступ к перечисленным ниже методам. Java Возвращаемые значения примитивных типов записываются строчными буквами, именно так они и отображаются в... Java API.
| Способ доставки | Описание |
|---|---|
boolean after(Date date) |
Это указывает, приходится ли данная дата на период после указанного параметра даты. |
boolean before(Date date) |
Это указывает, приходится ли данная дата на период до указанного параметра даты. |
Object clone() |
Это создаёт копию объекта даты. |
int compareTo(Date date) |
Эта функция сравнивает объект класса «дата» с другим объектом этого класса. |
int compareTo(Object date) |
Он сравнивает объект класса с другим объектом. Эта перегрузка относится к API до появления обобщений; текущая версия Java раскрывает только compareTo(Date). |
boolean equals(Object date) |
Эта функция проверяет, равны ли два объекта даты. |
long getTime() |
Она считывает время в миллисекундах с 1 января 1970 года. |
int hashCode() |
Она извлекает хеш-код заданной даты. |
void setTime(long time) |
Эта функция устанавливает время для заданного объекта даты. |
String toString() |
Эта функция преобразует объект даты в строковый объект. |
Примечание: методы доступа к полям этого класса, такие как getYear(), getMonth() и toLocaleString()Устарели начиная с JDK 1.1. Сам класс по-прежнему работает, но в новом коде ожидается его использование. Calendar, DateFormat, или java.time Описание занятий приведено ниже на этой странице.
Пример: Отображение текущей даты и времени в JSP-странице.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
В этом примере мы получаем текущую дату и время, используя объект даты.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import="java.util.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru current Date</title> </head> <body> Today's date: <%= (new java.util.Date()).toLocaleString()%> </body> </html>
Расшифровка кода:
Code Линия 11: Мы используем объект даты для получения текущей даты и времени.
Современный эквивалент: Приведённый выше код сохраняется в точно таком виде, в каком он был опубликован. toLocaleString() был заменен на DateFormat.format(Date date) начиная с JDK 1.1, поэтому на текущей странице будет написано следующее: <%= java.text.DateFormat.getDateTimeInstance().format(new java.util.Date()) %> вместо. <%= %> Сам тег выражения остаётся неизменным.
Когда вы выполните приведенный выше код, вы получите следующий результат.
Выход:
Мы получаем текущую дату и время.
Как отформатировать дату и время в JSP
Печать Date Объект напрямую возвращает то, что выдает локаль по умолчанию, что редко совпадает с форматом, необходимым для страницы. Существует два подхода к управлению выводом.
Первый вариант сохраняет логику. Java и использует SimpleDateFormatгде каждая буква в шаблоне обозначает одну часть значения.
<%@ page import="java.util.*, java.text.*" %> <% SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String today = fmt.format(new Date()); %> Today's date: <%= today %>
| Образец письма | Смысл | Пример |
|---|---|---|
yyyy |
Четырехзначный год | 2026 |
MM |
Номер месяца | 07 |
dd |
День месяца | 29 |
HH |
Часовые, 24-часовые часы | 18 |
mm |
Минут | 45 |
ss |
Секунд | 02 |
Второй подход позволяет избежать использования лишнего контента на странице. Java вместо этого используется код и библиотека форматирования JSTL, которая хорошо сочетается с другими компонентами. JSP-теги действий.
<%@ taglib prefix="fmt" uri="jakarta.tags.fmt" %> <jsp:useBean id="now" class="java.util.Date" /> <fmt:formatDate value="${now}" pattern="yyyy-MM-dd HH:mm:ss" />
uri Указанное выше значение соответствует формату JSTL 3.0, используемому в Jakarta EE 10 и более поздних версиях. Страницы, работающие в более старых контейнерах, по-прежнему используют этот формат. http://java.sun.com/jsp/jstl/fmtИ контейнеры продолжают принимать старый URI для обеспечения совместимости. type выбор атрибутов date, time или both, В то время dateStyle, timeStyle и timeZone Уточните результат.
Работа с датами с помощью API java.time в JSP
Java 8 ввел java.time пакет, и теперь это рекомендуемый способ работы с датами в любом пакете. Java код, включая JSP-страницу. В отличие от DateЭти классы неизменяемы и потокобезопасны, поэтому один и тот же форматтер можно безопасно использовать совместно в разных запросах.
<%@ page import="java.time.*, java.time.format.*" %> <% LocalDateTime now = LocalDateTime.now(); DateTimeFormatter f = DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm"); %> Today's date: <%= f.format(now) %>
Выберите класс, соответствующий реальным потребностям страницы:
LocalDate— дата без указания времени, например, дата рождения.LocalTime— время без указания даты, например, час работы.LocalDateTime— дата и время без указания часового пояса.ZonedDateTime— например, дата и время, привязанные к определенному часовому поясу.ZoneId.of("Asia/Kolkata").Instant— машинная метка времени, наиболее близкое соответствие тому, чтоgetTime()возвращается.
Существующий код не нужно переписывать за один раз, потому что Date.from(instant) и date.toInstant() Преобразование между двумя API.
Распространенные ошибки обработки дат в JSP
Дата, которая корректно отображается на компьютере разработчика, может оказаться неверной в рабочей среде. Большинство таких сообщений об ошибках обусловлены перечисленными ниже недостатками.
- Отсутствует импорт: через
Dateбез<%@ page import="java.util.*" %>Не удается выполнить компиляцию, если не указан полностью квалифицированный специалист.java.util.Dateнаписано так, как показано в примере на этой странице. - Неправильный шаблон букв:
mmэто минуты иMMэто месяцы, иDDЭто день года, а не день месяца. - Часовой пояс сервера:
new Date()Отражает время сервера, а не посетителя. УстановитьtimeZoneв теге форматирования, когда аудитория находится в другом месте. - Совместное использование SimpleDateFormat: Класс не является потокобезопасным, поэтому статический экземпляр, используемый несколькими запросами, может возвращать искаженный результат. Создавайте отдельный экземпляр для каждого запроса или используйте другой подход.
DateTimeFormatter. - Пустая страница после обновления: Контейнер в Джакарте EE 10 отказывается принимать старый
javaxJSTL-файлы, поэтому тег форматирования отображается как обычный текст до тех пор, пока не будут установлены необходимые компоненты Jakarta. - Форматирование строки: Значение, полученное из параметра запроса, представляет собой текст и должно быть проанализировано с помощью
parse()Этот параметр будет принят любым способом определения даты.

