Форматирование строки даты в Java: не путайте с YYYY и yyyy.
Форматирование строки даты в Java: не путайте с YYYY и yyyy.

Версия

  • JDK8

Предисловие

  • В разработке программного обеспечения работа с датами и временем является распространенной задачей. Распространенное недоразумение связано с форматированием даты. YYYY и yyyy。Хотя они похожи,Но на самом деле есть важное отличие,особенно когда имеешь дело с Годпервый рази Годпоследнее свидание。В этой статье будет подробно рассмотрено YYYY подводные камни и на примерах кода объясняет, как правильно использовать эти символы форматирования.

Основы форматирования даты

  • Форматирование даты — это процесс преобразования объекта даты в строку определенного формата. Общие символы форматирования включают:
Язык кода:txt
копировать
- `yyyy`: означает часть Года (например, 2024).
- `MM`: означает часть луны (например, 06)
- `dd`: представляет дату (например, 08).
  • в большинстве случаев,yyyy Используется для обозначения года. Однако многие разработчики будут использовать прописные буквы. YYYY,и ошибочно принял его за yyyy Эквивалент.

YYYY и yyyy Разница

  • yyyy:На основе календаря Годиз Годделиться。календарь Годот 1 луна 1 Начинайте изо дня в день 12 луна 31 конец дня. Например,2024-01-01 и 2024-12-31 Все принадлежат году 2024
  • YYYY:на основе ISO 8601 Стандартные будни. Начало и конец недели зависят от первого понедельника месяца. Другими словами, отправная точка недели не обязательно 1 луна 1 день. Например, 2024 год Первая неделя года может начаться с 2023 начинается в последние дни года, поэтому YYYY и yyyy Могут давать разные результаты в начале и в конце сеанса.

Типичные ловушки

  • для лучшего понимания YYYY подводные камни, давайте посмотрим на некоторые конкретные примеры кода.

Пример 1: Канун Нового года

Предположим, текущая дата — понедельник, 31 декабря 2023 г. Согласно стандарту ISO 8601, этот день приходится на первую неделю 2024 года. поэтому:

  • использовать yyyy формат:2023
  • использовать YYYY формат:2024
Язык кода:java
копировать
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class DateExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2023, 12, 31);

        DateTimeFormatter yyyyFormatter = DateTimeFormatter.ofPattern("yyyy");
        DateTimeFormatter YYYYFormatter = DateTimeFormatter.ofPattern("YYYY");

        System.out.println("Using yyyy: " + date.format(yyyyFormatter));  // 2023
        System.out.println("Using YYYY: " + date.format(YYYYFormatter));  // 2024
    }
}

Пример 2: Первая неделя нового года.

Предположим, что текущая дата — вторник, 1 января 2024 г. Этот день относится к первой неделе 2024 года. поэтому:

  • использовать yyyy формат:2024
  • использовать YYYY формат:2024
Язык кода:java
копировать
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class DateExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2024, 1, 1);

        DateTimeFormatter yyyyFormatter = DateTimeFormatter.ofPattern("yyyy");
        DateTimeFormatter YYYYFormatter = DateTimeFormatter.ofPattern("YYYY");

        System.out.println("Using yyyy: " + date.format(yyyyFormatter));  // 2024
        System.out.println("Using YYYY: " + date.format(YYYYFormatter));  // 2024
    }
}

Пример 3: Конец года

Предположим, текущая дата — пятница, 30 декабря 2022 г. По стандарту ISO 8601 этот день приходится на первую неделю 2023 года. поэтому:

  • использовать yyyy формат:2022
  • использовать YYYY формат:2023
Язык кода:java
копировать
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class DateExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2022, 12, 30);

        DateTimeFormatter yyyyFormatter = DateTimeFormatter.ofPattern("yyyy");
        DateTimeFormatter YYYYFormatter = DateTimeFormatter.ofPattern("YYYY");

        System.out.println("Using yyyy: " + date.format(yyyyFormatter));  // 2022
        System.out.println("Using YYYY: " + date.format(YYYYFormatter));  // 2023
    }
}

в заключение

  • понимать YYYY и yyyy Разница,Избегайте распространенных ошибок форматирования,Это может помочь разработчикам писать более точный и надежный код. Благодаря адекватному тестированию и четкой документации,Ошибок, вызванных проблемами форматирования даты, можно эффективно избежать.

Профиль

👋 привет, я Lorin Лорейн, один Java Разработчик бэкэнд-технологий!девиз:Technology has the power to make the world a better place.

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

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

💡 В моем блоге вы найдете подробные статьи об основных концепциях Java, базовой технологии JVM, часто используемых платформах, таких как Spring и Mybatis, управлении базами данных, таких как MySQL, промежуточном программном обеспечении для обработки сообщений, таком как RabbitMQ, Rocketmq и т. д., оптимизации производительности, и т. д. Я также поделюсь некоторыми советами по программированию и методами решения проблем, которые помогут вам лучше освоить программирование на Java.

🌐 Я поощряю взаимодействие и создание сообщества,Поэтому, пожалуйста, оставляйте свои вопросы, предложения или запросы по теме.,Дайте мне знать, что вас интересует. также,Я поделюсь последней информацией об Интернете и технологиях.,Чтобы вы всегда были в курсе последних событий в мире технологий. Я с нетерпением жду возможности двигаться вперед по пути технологий вместе с вами.,Давайте исследуем безграничные возможности мира технологий.

📖 Следите за обновлениями моего блога и давайте вместе стремиться к техническому совершенству.

Я участвую в последнем конкурсе эссе для специального учебного лагеря Tencent по техническому созданию 2024 года.,Приходите и разделите со мной главный приз!

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.