##### Русский
- Исправление ошибки с одинаковыми результатами в разных странах при использовании методов `IsWeekend` и `IsWeekday`.
- Исправление ошибки `carbon.Parse("").StdTime()` вызывало панику из-за nil-указателя. #294
- Изменение ошибок из `частного` метода на `публичный` метод.
- Изменение стандартной даты начала недели с `воскресенья` на `понедельник`.
- Изменение года в `MinValue` с `-9998` на `1`.
- Переименование константы `weeksPerLongYear` в `WeeksPerLongYear`.
- Добавление файлов для бенчмарков `xxx_bench_test.go`.
- Добавление метода `IsEpoch` для проверки, является ли время UNIX-эпохой (1970-01-01 00:00:00 +0000 UTC).
- Добавление метода `WeekEndsAt` для получения последнего дня недели.
- Добавление метода `SetWeekendDays` для установки выходных дней недели.
- Добавление глобальной переменной `DefaultWeekStartsAt` для хранения стандартных выходных дней недели.
##### Китайский
- Удаление параметров `hour`, `minute`, `second` в методах `CreateFromLunar`, `CreateFromPersian`
- Изменение определений некоторых форматных символов, включая символы `U`, `V`, `X`, `S`, `T`, `Z`, `u`, `v`, `x`, `z`
- Исправление ошибки в неверном определении `IsLeapMonth` в лунном календаре
- Исправление ошибки в непоследовательных возвращаемых значениях методов `AtomFormat` и `AtomLayout`
- Исправление ошибки в непоследовательных возвращаемых значениях методов `RFC3339Format` и `RFC3339Layout`
- `time.Local` не обновляется при установке глобальной временной зоны
- Добавление форматного символа `o` для получения смещения временной зоны
- Добавление констант `TimestampLayout`, `TimestampMilliLayout`, `TimestampMicroLayout` и `TimestampNanoLayout`
- Добавление констант `TimestampFormat`, `TimestampMilliFormat`, `TimestampMicroFormat` и `TimestampNanoFormat`
- Добавление типов полей `DateTimeMilli`, `DateTimeMicro`, `DateTimeNano`
- Добавление типов полей `DateMilli`, `DateMicro`, `DateNano`
- Добавление типов полей `TimeMilli`, `TimeMicro`, `TimeNano`##### Русский
- Удаление параметров `hour`, `Minute`, `second` из методов `CreateFromLunar`, `CreateFromPersian`
- Изменение определений некоторых форматных символов, включая символы `U`, `V`, `X`, `S`, `T`, `Z`, `u`, `v`, `x`, `z`
- Исправление ошибки в неверном определении `IsLeapMonth` в лунном календаре
- Исправление ошибки в непоследовательных возвращаемых значениях методов `AtomFormat` и `AtomLayout`
- Исправление ошибки в непоследовательных возвращаемых значениях методов `RFC3339Format` и `RFC3339Layout`
- `time.Local` не обновляется при установке глобальной временной зоны
- Добавление форматного символа `o` для получения смещения временной зоны
- Добавление констант `TimestampLayout`, `TimestampMilliLayout`, `TimestampMicroLayout` и `TimestampNanoLayout`
- Добавление констант `TimestampFormat`, `TimestampMilliFormat`, `TimestampMicroFormat` и `TimestampNanoFormat`
- Добавление типов полей `DateTimeMilli`, `DateTimeMicro`, `DateTimeNano`
- Добавление типов полей `DateMilli`, `DateMicro`, `DateNano`
- Добавление типов полей `TimeMilli`, `TimeMicro`, `TimeNano`
##### Русский
- Удалить параметры `hour`, `minute`, `second` в методах `CreateFromLunar`, `CreateFromPersian`
- Изменить определения некоторых символов формата, включая символы `U`, `V`, `X`, `S`, `T`, `Z`, `u`, `v`, `x`, `z`
- Исправить ошибку в методе `IsLeapMonth` для лунного календаря
- Исправить ошибку в методах `AtomFormat` и `AtomLayout`, возвращающих несогласованные значения
- Исправить ошибку в методах `RFC3339Format` и `RFC3339Layout`, возвращающих несогласованные значения
- При установке глобального часового пояса `time.Local` не обновляется
- Добавить символ формата `o` для получения смещения часового пояса
- Добавить константы `TimestampLayout`, `TimestampMilliLayout`, `TimestampMicroLayout`, `TimestampNanoLayout`
- Добавить константы `TimestampFormat`, `TimestampMilliFormat`, `TimestampMicroFormat`, `TimestampNanoFormat`
- Добавить типы полей `DateTimeMilli`, `DateTimeMicro`, `DateTimeNano`
- Добавить типы полей `DateMilli`, `DateMicro`, `DateNano`
- Добавить типы полей `TimeMilli`, `TimeMicro`, `TimeNano`
- Исправить ошибку в методе `IsDST`, связанную с отсутствием часового пояса
- Исправить ошибку в методах `StartOfXXX`, `EndOfXXX`, связанную с отсутствием часового пояса
- Исправить ошибку при конвертации других календарей в календарь `Gregorian`, связанную с отсутствием часового пояса
- При установке часового пояса по умолчанию `time.Local` не обновляется
- Добавить методы `MaxDuration`, `MinDuration`
- Добавлены методы `ParseWithLayouts` и `ParseWithFormats`
- Переименован интерфейс `formatFactory` в `FormatFactory` и добавлены типовые ограничения
- Возвращаемое значение метода `GormDataType` для структур `LayoutType`, `FormatType`, `TimestampType` изменено на `time`
- Типы `DateTime`, `Date`, `Time` изменены с `struct` на `string`
- Типы `Timestamp`, `TimestampMilli`, `TimestampMicro`, `TimestampNano` изменены с `struct` на `int64`
- Внутренние типы полей базы данных перемещены в новый файл `types.go`
- Исправлен баг, при котором поле `updated_at` не обновлялось автоматически при обновлении данных в `gorm`
- `golang` минимальная версия зависимости обновлена до `1.18`
- `carbon`, `julian`, `lunar`, `persian` передача значений изменена на передачу указателей
- Добавлен метод `ZoneName` для получения имени временной зоны
- Добавлен метод `HasError` для проверки наличия ошибок
- Добавлен метод `IsNil` для проверки, является ли значение `nil`
- Добавлен метод `Copy` для глубокого копирования `carbon`
- Добавлен метод `WeekStartsAt` для получения даты начала недели
- Добавлен пример файла `xxx_example.go`
- Добавлен файл `constant.go`, в котором константы перемещены из файла `carbon.go`
- Установлена глобальная временная зона по умолчанию `UTC` вместо `Local`
- Метод `Offset` переименован в `ZoneOffset`
- Метод `IsSetTestNow` переименован в `IsTestNow`
- Метод `UnSetTestNow` переименован в `CleanTestNow`
- Удален метод `Location`, заменен методом `Timezone`
- Изменена логика проверки методов `IsValid` и `IsInvalid`, `zero time` больше не считается недействительным временем
- При установке глобальной временной зоны обновляется `time.Local`
- Переработан файл `database.go`, удалены типы полей `carbon.DateTime`, `carbon.DateTimeMilli`, `carbon.DateTimeMicro`, `carbon.DateTimeNano`, `carbon.Date`, `carbon.DateMilli`, `carbon.DateMicro`, `carbon.DateNano`, `carbon.Time`, `carbon.TimeMilli`, `carbon.TimeMicro`, `carbon.TimeNano`, `carbon.Timestamp`, `carbon.TimestampMilli`, `carbon.TimestampMicro`, `carbon.TimestampNano`, заменены на универсальные типы полей для реализации пользовательского формата вывода при `MarshalJSON/UnmarshalJSON`
**Полный журнал обновлений**: https://gitee.com/dromara/carbon/commits/v2.5.4
- Исправлен баг с невозможностью распарсить поля `Time`, `TimeMilli`, `TimeMicro`, `TimeNano` методом `UnmarshalJSON`.
- Удалены废弃的方法 `ToStdTime`.
- Григорианский календарь получил новые методы `MaxValue`, `MinValue`, `IsValid`.
- Китайский лунно-солярный календарь получил новые методы `MaxValue`, `MinValue`, `IsValid`.
- Персидский календарь (иранский) получил новые методы `MaxValue`, `MinValue`, `ToShortMonthString`, `ToShortWeekString`.
- В методах PersianCalendar `ToMonthString`, `ToWeekString` добавлен новый необязательный параметр `locale` со значениями `en`/`fa`.
- Добавлена проверка корректности дат в китайском лунно-солярном календаре и персидском календаре (иранском).
- Add parsing support for `2006-01-02 15:04:05-0700 MST` format in `Parse` method
- Change the judgment logic of `IsValid` and `IsInvalid` methods
- Implement `Abs` method by itself in `DiffAbsInDuration` method #226
- Return zero time instead of being empty where the value is zero time in `Parse` method #232
- Unified unit test format
## What's Changed
* Change repository url from `github.com/golang-module/carbon` to `github.com/dromara/carbon`
* Add `hungarian` translation #39 by @kenlas in https://github.com/dromara/carbon/pull/252
* Add support for `string` and `[]byte` types when parsing database data in `Scan` method #251
* Retranslate `README.jp` by @You-saku in https://github.com/dromara/carbon/pull/259
* Fix `DiffInMonths()` method bug #255
* Fix `Japanese` translation by @nkmr-jp in https://github.com/dromara/carbon/pull/254
* Replace `Lock()` with `RLock()`,`Unlock()` with `RUnlock()` to optimize performance by @ritbrz in https://github.com/dromara/carbon/pull/253
* Replace `ToDateTimeStruct()` with `NewDateTime()`,`ToDateTimeMilliStruct()` with `NewDateTimeMilli()`,`ToDateTimeMicroStruct()` with `NewDateTimeMicroStruct()`,`ToDateTimeMilliNanoStruct()` with `NewDateTimeNano()`
* Replace `ToDateStruct()` with `NewDate()`,`ToDateMilliStruct()` with `NewDateMilli()`,`ToDateMicroStruct()` with `NewDateMicro()`,`ToDateNanoStruct()` with `NewDateNano()`
* Replace `ToTimeStruct()` with `NewTime()`,`ToTimeMilliStruct()` with `NewTimeMilli()`,`ToTimeMicroStruct()` with `NewTimeMicro()`,`ToTimeNano()Struct` with `NewTimeNano()`
* `DateTime`, `DateTimeXXX`,`Date`,`DateXXX`, `Time`,`TimeXXX` structures implement `Scan`,`Value`,`MarshalJSON`,`UnmarshalJSON` interfaces
* Bump `codecov/codecov-action` from 4 to 5 by @dependabot in https://github.com/dromara/carbon/pull/256
* Unified use of global default timezone `defaultTimezone` when `UnmarshalJSON`
## New Contributors
* @kenlas made their first contribution in https://github.com/dromara/carbon/pull/252
* @nkmr-jp made their first contribution in https://github.com/dromara/carbon/pull/254
* @You-saku made their first contribution in https://github.com/dromara/carbon/pull/259
**Full Changelog**: https://github.com/dromara/carbon/compare/v2.4.1...v2.5.0