Инструменты обработки времени, которые должны знать разработчики Java: подробное объяснение класса SimpleDateFormat
Инструменты обработки времени, которые должны знать разработчики Java: подробное объяснение класса SimpleDateFormat

theme: healer-readable

highlight: a11y-dark

Привет, друзья, здравствуйте, я Мяу Шоу.

Сегодня я хочу поделиться с вами некоторыми знаниями, которые я узнал ежедневно, и пообщаться с вами в форме слов, чтобы учиться друг у друга. Хотя один человек может идти быстрее, группа людей может идти дальше.

Я энтузиаст серверной разработки, и язык, с которым я чаще всего сталкиваюсь в своей повседневной работе, — это язык Java, поэтому я стараюсь использовать свое свободное время для вывода того, что я узнал, в виде статей. надеясь таким образом помочь новичкам или друзьям, которые хотят начать, они также могут накопить свои собственные навыки, просмотреть их и проверить наличие недостатков.

Друзья, в процессе рассмотрения, если вы считаете статью хорошей, ставьте лайк, собирайте и подписывайтесь на нее. Санлиан — лучшая поддержка и поддержка для меня и автора на моем писательском пути!

Предисловие

В разработке Java,Обработка даты и времени всегда была сложной проблемой. Чтобы облегчить разработчикам форматирование и анализ даты и времени.,Java предоставляет класс SimpleDateFormat.,Различные форматы даты и времени могут быть легко преобразованы.

краткое содержание

Класс SimpleDateFormat — это класс форматирования даты и времени, предоставляемый Java. Он может преобразовывать дату и время в строку в указанном формате или анализировать строку в дату и время. Класс SimpleDateFormat может выполнять различные процессы форматирования даты и времени, например форматирование даты и времени в формате «гггг-ММ-дд». ЧЧ:мм:сс», «гггг год ММ месяц дд день» и другие форматы.

Класс SimpleDateFormat

Введение

Класс SimpleDateFormat находится в пакете java.text.,Он наследуется от абстрактного класса DateFormat. DateFormat — абстрактный класс форматирования даты и времени.,SimpleDateFormat — один из классов реализации DateFormat.,Он определяет формат даты и времени с помощью строки шаблона.

Класс Существует два SimpleDateFormatиз Конструктор, один из которых является Конструктором по умолчанию, а другой — объект SimpleDateFormat, созданный на основе указанной строки шаблона. Устанавливая разные строки шаблона, класс. SimpleDateFormat может поддерживать различные форматы и преобразования даты и времени.

Анализ исходного кода

Класс Исходный код SimpleDateFormatiz относительно сложен, но основной код можно разделить на две части: Конструктор и Методы. форматирования/анализа。

Конструктор

Класс SimpleDateFormat имеет два Конструктора.,Один из них — Конструктор по умолчанию.,Другой способ — создать объект SimpleDateFormat на основе указанной строки шаблона. Следующий вариант — создать объект SimpleDateFormat из Конструктора на основе строки шаблона:

Язык кода:java
копировать
public SimpleDateFormat(String pattern) {
    this(pattern, Locale.getDefault(Locale.Category.FORMAT));
}

Конструктор создает объект SimpleDateFormat, передавая шаблон строки шаблона и объект Locale по умолчанию. Объект Locale представляет конкретный языковой стандарт.,Используется для управления форматированием и анализом даты и времени. Устанавливая различные объекты изLocale,Класс SimpleDateFormat может поддерживать различные языковые регионы и форматы даты и времени. Вот пример:

Язык кода:java
копировать
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
System.out.println(sdf.format(new Date())); 

Методы форматирования/анализа

Класс SimpleDateFormat предоставляет два метода: метод форматированияиметод анализа。метод форматирования преобразует дату и время в указанный формат из строки, метод анализ анализирует строку на дату и время. Ниже приведен Класс SimpleDateFormatиз Два основных метода:

  1. метод форматирования
Язык кода:txt
копировать
Класс SimpleDateFormatизметод форматированием является функция format(), которая используется для форматирования даты и времени в указанный строковый формат. Вот пример:
Язык кода:java
копировать
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   System.out.println(sdf.format(new Date())); 

В этом примере мы создаем объект SimpleDateFormat sdf, строка шаблона которого имеет вид «гггг-ММ-дд ЧЧ:мм:сс», а затем форматируем текущую дату и время в строку в указанном формате с помощью format().

  1. метод анализа
Язык кода:txt
копировать
Класс SimpleDateFormatизметод Анализ — это parse(), который используется для преобразования строки в дату и время. Вот пример:
Язык кода:java
копировать
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   Date date = sdf.parse("2022-01-01 12:00:00");
   System.out.println(date); 

В этом примере мы создаем объект SimpleDateFormat sdf, строка шаблона которого имеет вид «гггг-ММ-дд ЧЧ: мм: сс», а затем анализирует() строку «2022-01-01 12:00: 00» как дату. и время.

Сценарии применения

Класс SimpleDateFormatиз имеет широкий спектр сценариев применения. В реальной разработке нам часто приходится форматировать дату и время в строку заданного формата или анализировать строку в дату и время. Вот некоторые варианты использования Класса Сценарии применения SimpleDateFormatиз:

  1. Отформатируйте дату и время в строку в указанном формате. Например, отформатируйте дату и время в формате «гггг-ММ-дд», «гггг год ММ месяц дд день» и другие форматы.
Язык кода:java
копировать
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
   System.out.println(sdf.format(new Date())); 

   SimpleDateFormat sdf = new SimpleDateFormat("гггг ММ месяц дд день");
   System.out.println(sdf.format(new Date())); 
  1. Разобрать строку на дату и время. Например, разберите строки «2022-01-01», «2022-01-01» и т. д. в объекты Date.
Язык кода:java
копировать
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
   Date date = sdf.parse("2022-01-01");
   System.out.println(date); // Формат вывода: Сб. Jan 01 00:00:00 CST 2022

   SimpleDateFormat sdf = new SimpleDateFormat("гггг ММ месяц дд день");
   Date date = sdf.parse("01 января 2022 г.");
   System.out.println(date); // Формат вывода: Сб. Jan 01 00:00:00 CST 2022

Анализ преимуществ и недостатков

преимущество

  1. Простой и удобный в использовании. Класс SimpleDateFormat предоставляет простой в использовании API, который позволяет выполнять различные преобразования формата даты и времени, устанавливая различные строки шаблонов.
  2. Поддержка различных языковых регионов. Класс SimpleDateFormat может поддерживать различные языковые регионы, а также форматы даты и времени, устанавливая различные объекты Locale. Это очень полезно в международном развитии.

недостаток

  1. Не потокобезопасно. Класс SimpleDateFormatявляется ли поток небезопаснымиз,Если несколько потоков одновременно обращаются к одному и тому же объекту SimpleDateFormat,Может привести к путанице формата даты и времени.
  2. Плохая производительность. Класс SimpleDateFormatиз Плохая производительность,Специально для частых вызовов из сценариев,Может повлиять на производительность программы.

Введение в методы кода класса

Обычно используемые методы класса SimpleDateFormatiz следующие:

имя метода

описывать

SimpleDateFormat(String pattern)

Создает объект SimpleDateFormat на основе указанной строки шаблона.

format(Date date)

Отформатируйте указанную дату в строку.

parse(String source)

Анализирует указанную строку в дату.

setLenient(boolean lenient)

Указывает, следует ли строго следовать строке шаблона во время синтаксического анализа. По умолчанию используется расслабленный синтаксический анализ.

setTimeZone(TimeZone zone)

Укажите часовой пояс.

toLocalizedPattern()

Возвращает локализованную строку шаблона.

toPattern()

Возвращает строку шаблона.

clone()

Клонируйте текущий объект SimpleDateFormat.

тестовый пример

Вот руководство по Классу SimpleDateFormatизтестовый например, мы можем пройти тест примерпроверить Класс SimpleDateFormatиз Нормальны ли различные функции.

Демонстрация тестового кода

Язык кода:java
копировать
package com.example.javase.se.classes;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;

/**
 * @Author ms
 * @Date 2023-11-03 23:08
 */
public class SimpleDateFormatTest {

    public static void main(String[] args) throws Exception {
        // тестметод форматирования
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat sdf2 = new SimpleDateFormat("гггг год ММ месяц дд ЧЧ часы мм минуты сс секунды");
        System.out.println(sdf1.format(new Date()));
        System.out.println(sdf2.format(new Date()));

        // тестметод анализа
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sdf4 = new SimpleDateFormat("гггг ММ месяц дд день");
        Date date1 = sdf3.parse("2023-01-01");
        Date date2 = sdf4.parse("01 января 2023 г.");
        System.out.println(date1);
        System.out.println(date2);

        // Тестовая установкаLocaleобъект        SimpleDateFormat sdf5 = new SimpleDateFormat("гггг год ММ месяц дд", Locale.US);
        System.out.println(sdf5.format(new Date()));

        // Тестовая установкачасовой пояс        SimpleDateFormat sdf6 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        sdf6.setTimeZone(TimeZone.getTimeZone("GMT+8"));
        System.out.println(sdf6.format(new Date()));

        // Тестовый расслабленный синтаксический анализ
        SimpleDateFormat sdf7 = new SimpleDateFormat("yyyy-MM-dd");
        sdf7.setLenient(false);
        try {
            Date date3 = sdf7.parse("2023-02-30");
        } catch (Exception e) {
            System.out.println("Ошибка анализа:" + e.getMessage());
        }
    }
}

Выполнив вышеуказанный тест пример, мы можем проверить Класс SimpleDateFormatиз Нормальны ли различные функции. Например, мы можем протестировать метод форматированияиметод Может ли анализ правильно преобразовать дату и время?,Можно ли поддерживать различные языковые форматы на основе разных объектов Locale?,Можно ли изменить отображение даты и времени, установив часовой пояс?,И можно ли бороться с нелегальной датой и временем, настроив свободный парсинг и т.д.

Результаты испытаний

  Согласно тестам, указанным выше пример,местный Результаты Следующие испытания приведены только для справки, вы также можете изменить их самостоятельно. пример Или добавьте больше тестовых данных или методов тестирования и начните профессионально учиться, чтобы углубить свое понимание.

Анализ тестового кода

  Согласно тестам, указанным выше пример,Здесь я дам вам глубокую и подробную интерпретацию тестового кода.,Чтобы больше студентов могли понять и углубить свое впечатление.

Этот код в основном тестирует и демонстрирует класс Java SimpleDateFormat и в основном включает в себя следующие аспекты:

  1. тестметод форматирования:создавать SimpleDateFormat объект и укажите формат даты для форматирования, используйте format метод будет Date Объект выводится в указанном формате.
  2. тестметод анализ: создать SimpleDateFormat объект и укажите формат даты для анализа, используйте parse метод будет строка преобразуется в соответствующую из Date объект.
  3. Параметры теста Объект Locale: при создании объекта SimpleDateFormat вы можете передать объект Locale, чтобы указать языковой стандарт вывода.
  4. Тестовая установка часового пояса. С помощью метода setTimezone вы можете настроить SimpleDateFormat на использование указанного часового пояса для форматирования и анализа даты.
  5. Проверьте свободный анализ: с помощью метода setLenient вы можете установить, соответствует ли SimpleDateFormat указанному формату при анализе даты. Если он не соответствует строго, дата будет автоматически скорректирована.

... ...

Конец статьи

Хорошо, это весь мой контент по этому выпуску. Если у вас есть вопросы, оставьте сообщение ниже. Увидимся в следующем выпуске.

... ...

Нет порядка обучения, нет объема знаний; как бы ни было дело велико или мало, следует спрашивать совета непредвзято, если нас трое, у нас должен быть учитель! ! !

wished for you successed !!!

⭐️Если я вам нравлюсь, подписывайтесь на меня.

⭐️Если вам было полезно, поставьте лайк.

⭐️Если у вас есть вопросы, оставьте комментарий и дайте мне знать.

я участвуюНа третьем этапе специального тренировочного лагеря Tencent Technology Creation 2023 года будет проводиться конкурс сочинений. Соберите команду, чтобы выиграть приз!

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose