업데이트 로그
v2.7.0 (2026-10-19)
✨ 새로운 기능
AddWeekdays,AddWeekday,SubWeekdays,SubWeekday메서드를 추가하여 영업일 계산 시 주말 건너뛰기 지원: 인스턴스에 설정된 주말을 건너뛰며 날짜를 이동하므로 영업일 기준으로 기한을 계산할 수 있습니다. 네 가지 이름은AddDays/AddDay/SubDays/SubDay와 일관되며, 주말은 인스턴스에서 읽으므로SetWeekendDays도 계속 동작합니다. 7일 모두 주말로 설정된 경우 무한 루프를 방지하기 위해 각 영업일 범위를 한 주로 제한합니다 (by @darakanoit in #366)IsSameWeek메서드를 추가하여 두 날짜가 같은 주에 속하는지 판단:IsSame*패밀리(IsSameCentury,IsSameDecade,IsSameYear,IsSameQuarter,IsSameWeek,IsSameMonth,IsSameDay,IsSameHour,IsSameMinute,IsSameSecond)를 완성합니다.SetWeekStartsAt설정을 존중하므로 한 설정에서 같은 주인 두 날짜가 다른 설정에서는 같은 주가 아닐 수 있습니다. 비교는 주 시작일을 기준으로 하며 연도를 넘는 경계 주도 올바르게 처리합니다 (by @darakanoit in #368)IsBirthday메서드를 추가하여 월과 일을 비교해 생일 여부 판단: 연도를 무시하고 같은 월일인지 여부를 반환합니다. 인수가 없으면 현재 시간과 비교합니다. 2월 29일은 2월 29일만 일치하므로 평년에는 생일이 될 수 없으며, PHP Carbon 동작과 일치합니다 (by @darakanoit in #364)Asia/Jakarta시간대 상수 지원 추가 (by @mirzaq19 in #374)
🐛 버그 수정
- 서머타임 해제 시
StartOfSecond와EndOfSecond가 잘못된 시각 인스턴스를 선택하는 문제 수정: 서머타임으로 반복되는 시간대에서time.Date재구성이 동일한 지역 시각의 다른 인스턴스를 선택할 수 있었습니다. 이제 인스턴스를 복사하고 기존 타임스탬프의 서브초 정밀도를 조정하여 선택된 시점, 위치, 설정을 유지합니다 (by @mikamikasuki in #377) - 서머타임 해제 시
StartOfMinute와EndOfMinute가 잘못된 시각 인스턴스를 선택하는 문제 수정: #377 과 동일한 종류의 버그로 한 단계 위 단위의 문제입니다. 이제 인스턴스를 복사하고 지역 초를 빼서 시점, 위치, 오프셋을 유지합니다 (by @dualfroz in #378) - 서머타임 해제 시
StartOfHour와EndOfHour가 잘못된 시각 인스턴스를 선택하는 문제 수정: 재구성된 시간 경계에 수신자의 오프셋과 일치하는 유효한 대응 인스턴스가 있으면 수신자의 인스턴스를 유지합니다. 대응 인스턴스가 없는 경우(Lord Howe의 부분 시간 전환 등)에는 기존 달력 재구성 동작을 유지합니다 (by @dajiaohuang in #382) DiffInSeconds가 서브초 부분을 무시하여 초 경계를 넘을 때 부정확하게 계산하는 문제 수정: 정수 초 타임스탬프를 빼면서 소수 부분이 무시되어 초 경계를 넘는 0.2초 간격이 1초로 계산되었습니다. 이제 나노초 차이의 부호가 반대일 때 ±1로 조정하고, 경과한 정수 초를 0 방향으로 절삭하여 계산합니다 (by @youdie006 in #379)DiffInDays와DiffInWeeks가 서머타임 전환을 넘을 때 잘못된 결과를 계산하는 문제 수정: 경과 초를 나누는 방식은 서머타임 변경을 넘을 때 잘못된 결과를 주었습니다. 이제DiffInMonths가 월을 세는 방식(AddDate와 보정)으로 달력 일수를 세고DiffInWeeks는 이를 사용합니다. 서머타임 전환을 넘는 구간만 결과가 달라집니다 (by @youdie006 in #376)DiffInYears와DiffInMonths가 서로 다른 시간대의 날짜를 비교할 때 잘못된 추정치를 산출하는 문제 수정: 각 날짜의Year()/Month()필드로 처음 추정할 때 두 날짜가 서로 다른 위치에 있으면 오차가 발생할 수 있었습니다. 이제 먼저 이른 날짜의 위치에서 늦은 날짜를 읽은 뒤 연과 월 필드를 가져와DiffInDays가 사용하는 틀과 일치시킵니다 (by @ybai08 in #384)IsSameDecade가 세기를 비교하지 않아 세기를 넘는 날짜를 잘못 판정하는 문제 수정:Decade()는 세기 내의 10년 단위이므로Parse("1995-08-05").IsSameDecade(Parse("2095-08-05"))가 true를 반환했습니다. 이제Century()도 비교하여StartOfDecade가 사용하는 구간과 일치시킵니다 (by @youdie006 in #375)FromStdTime이 UTC 오프셋 차이로 자정 직후에 잘못된 음력 날짜를 반환하는 문제 수정: 시간이 속한 시간대에서 1900-01-31 부터의 경과 시간을 계산하여 두 시점의 오프셋이 일수 계산에 누출되었습니다. 이제 UTC에서 벽시계 날짜 사이의 일수를 계산하여persian.FromStdTime및hebrew.FromStdTime과 일치시킵니다 (by @youdie006 in #380)- 동결 시계 모드에서
Sleep을 동시 호출하면 시계 진행이 유실되는 경합 상태 수정: 동결 시계에서의 동시Sleep호출이 서로 그리고Now와 경합하여 시계 진행이 유실되었습니다. 이제 기존 동결 시계 뮤텍스로 검사와 갱신을 감쌉니다 (by @yuefdev in #383)
🔧 의존성 업그레이드
github/codeql-action을v4.38.1에서v4.38.3으로 업그레이드 (by @dependabot[bot] in #372 #381)
v2.6.18 (2026-09-28)
✨ 새로운 기능
카자흐어로컬라이즈 언어 지원 추가(lang/kk.json): 월 이름, 짧은 월 이름, 요일 이름, 짧은 요일 이름은 CLDR 을 따르는 PHP Carbon 의 카자흐어 로케일에서 그대로 가져왔습니다. 상대 시간 표현은 수사 뒤의 명사가 수 변화하지 않는 카자흐어 문법을 따릅니다. 계절과 별자리는 전통적인 카자흐어 이름으로 직접 번역했습니다 (by @darakanoit in #355)
🐛 버그 수정
Format메서드에서 마지막 이스케이프 문자를 처리할 때 범위를 벗어난 접근이 발생할 수 있는 문제 수정:helper.go의format2layout메서드에서 이스케이프 문자 처리에 경계 검사를 추가하여 범위를 벗어난 접근으로 인한panic을 방지합니다 (by @gouguoyin in #348)- 주 시작일을 월요일이 아닌 날로 설정하면
ToWeekString,ToShortWeekString,Format이 잘못된 요일 이름을 반환하는 문제 수정:ToWeekString/ToShortWeekString은DayOfWeek() % DaysPerWeek로 이름 리소스를 참조했지만 리소스는 절대 순서(일요일 우선)로 정렬되어 있었습니다. 이제 절대 요일int(StdTime().Weekday())로 참조하여 리소스 순서와 일치시키고Format("l")동작과 같게 했습니다 (by @sneha4175 in #371) - 기존 시간 값이 있는 데이터베이스 필드에
NULL을 스캔할 때 기존 값이 지워지지 않는 문제 수정: 이미 값이 있는 Carbon 에 SQLNULL을 스캔하면 성공을 반환하면서 이전 날짜가 남아 있었습니다. 이제Carbon.Scan과 레이아웃, 포맷, 타임스탬프 스캐너 래퍼에서 대상을 초기화합니다 (by @vitalivo in #360)
⚡ 성능 최적화
- 카피 온 라이트를 통해 언어 인스턴스와 리소스의 캐싱 및 공유를 최적화하여 메모리 할당 감소:
SetLocale은 캐시된 로케일 맵 전체를 모든Language인스턴스에 복사하여 Carbon 인스턴스마다 20개 항목 맵을 새로 할당했습니다. 이제SetLocale은 캐시 맵을 공유하고 공유 상태로 표시하며,SetResources는 첫 쓰기 전에 복사하고, 리소스를 읽기만 하는 처리는 공유 맵을 계속 읽습니다.NewCarbon()당 할당은 1600 B / 13 회에서 232 B / 4 회로 감소합니다 (by @darakanoit in #350) - 월, 요일, 계절, 별자리 로컬라이즈 리소스 조회를 최적화하여 호출할 때마다 문자열을 분할하는 작업 방지: 6개 메서드는 호출할 때마다 "|" 로 구분된 언어 리소스를 읽고 한 요소를 참조하기 위해
strings.Split을 실행했습니다. 이제 작은 헬퍼가strings.Count와strings.IndexByte로 제자리에서 요소를 찾아 호출당 할당이 0입니다.Constellation-61.54%,ToShortWeekString-47.35%,ToWeekString-44.13%,Season-40.65%,ToMonthString-37.66%,ToShortMonthString-35.88% (by @darakanoit in #352) - 로케일마다 언어 인스턴스 하나를 공유:
NewCarbon()은 인스턴스마다 새로운Language를 생성했습니다. 이제defaultLanguage(locale)이 로케일마다 바로 사용 가능한Language하나를sync.Map에 캐시합니다. Carbon 생성 시 할당은 4회에서 1회로 감소합니다 (by @darakanoit in #354) - 연도별 일수와 누적 일수 테이블을 미리 계산하여 음력 날짜 변환 최적화: 음력 변환은 연도 테이블을 인덱스로 참조하지 않고 순회하여 O(1900년 이후 연수) 비용이 들었습니다. 이제 지원되는 각 연도의 일수와 누적 합계를 패키지 초기화 시 한 번만 계산합니다. 2020년 날짜를 음력으로 변환할 때 1009 ns -> 282 ns(-72%), 그레고리력으로 되돌릴 때 738 ns -> 23 ns(-97%) 입니다 (by @darakanoit in #357)
🔧 의존성 업그레이드
github.com/stretchr/testify를v1.11.1에서v1.12.1로 업그레이드 (by @dependabot[bot] in #341 #344)github/codeql-action을v4.37.4에서v4.38.1로 업그레이드 (by @dependabot[bot] in #340 #342 #345 #346 #362 #369)
🚀 CI
CI테스트 워크플로를 개선하여PR에서 전체 테스트 스위트와 경합 상태 검사를 실행하고,push에서만 커버리지를 생성 및 업로드: 테스트 명령은 루트 패키지만이 아니라./...로 모든 패키지를 대상으로 합니다. 커버리지 파일 생성과 Codecov 업로드는push이벤트로 제한하고, 모든 패키지에서-race를 사용하는 전용 테스트 단계를 추가했습니다 (by @gouguoyin in #361)
v2.6.17 (2026-08-09)
🐛 버그 수정
이슬람요일 이름의 철자 오류를 수정하고Jumaat을Jumat으로 변경그레고리력과히브리력간 변환에서 발생하는 계산 오류 수정
🔧 의존성 업그레이드
github/codeql-action을v4에서v4.37.4로 업그레이드actions/setup-go를v6에서v7로 업그레이드actions/checkout을v6에서v7로 업그레이드codecov/codecov-action을v5에서v6으로 업그레이드codecov/codecov-action을v6에서v7으로 업그레이드
📝 문서
README문서를NRG표준 템플릿으로 통일README의 불필요한 광고 외부 링크를 정리하고 더 이상 사용되지 않는Go Report Card상태 배지 제거
v2.6.16 (2026-01-28)
🐛 버그 수정
Format메서드에서u,v,x기호 파싱 오류 bug 수정
🔧 의존성 업그레이드
actions/checkout을v5에서v6로 업그레이드
v2.6.15 (2025-11-15)
✨ 새로운 기능
HttpLayout,HttpFormat상수 및ToHttpString메서드 추가몽골어로컬라이즈 언어 지원 추가(lang/mn.json)아프리칸스어로컬라이즈 언어 지원 추가(lang/af.json)
🐛 버그 수정
difference.go파일의DiffAbsInDuration메서드에서 사용된go1.19부터만 사용 가능한Abs메서드 제거네덜란드어로컬라이즈 언어 파일(lang/nl.json)의weeks필드에서 중복된Zondag오류 수정
v2.6.14 (2025-10-28)
✨ 새로운 기능
그리스어로컬라이즈 언어 지원 추가(lang/el.json)핀란드어로컬라이즈 언어 지원 추가(lang/fi.json)미얀마어로컬라이즈 언어 지원 추가(lang/my.json)
🐛 버그 수정
traveler.go파일의 시간 증감 시리즈 메서드를 최적화하여 인스턴스를 복사함으로써 불변성을 보장하여 원본 인스턴스의 수정을 방지
v2.6.13 (2025-10-15)
🐛 버그 수정
helper.go의format2layout메서드에서 이스케이프 문자 처리에 대한 경계 검사를 추가하여 범위를 벗어난 접근으로 인한panic방지
⚡ 성능 최적화
language.go의SetLocale메서드에서sync.Once를 사용하여 언어 파일이 한 번만 로드되도록 보장하고,sync.Map을 사용하여 스레드 안전한 캐싱을 구현
v2.6.12 (2025-09-16)
🐛 버그 수정
type_carbon.go파일의UnmarshalJSON메서드에서isEmpty플래그를 설정하여 빈 값을 나타냄- 잠재적인 경합 상태와 null 포인터 역참조 문제를 수정하여 동시성 안전성 향상
⚡ 성능 최적화
sync.Map을 사용하여 고성능 동시 캐싱을 구현
🔧 의존성 업그레이드
golang환경 의존성을1.21에서1.18로 낮춤testify테스트 프레임워크를v1.10.0에서v1.11.1로 업그레이드
v2.6.11 (2025-07-18)
✨ 새로운 기능
히브리력(유대력)지원 추가 및 단위 테스트와 벤치마크 테스트 파일 추가
♻️ 리팩터링 및 변경
Sleep을 구조체 메서드에서 전역 메서드로 변경페르시아력리팩토링 및 벤치마크 테스트 파일 추가중국 음력리팩토링 및 벤치마크 테스트 파일 추가율리우스일/수정율리우스일리팩토링 및 벤치마크 테스트 파일 추가
📝 문서
- 전체 성능 테스트 리포트 파일 추가
v2.6.10 (2025-07-07)
✨ 새로운 기능
Sleep메서드와 관련단위 테스트,벤치마크 테스트,예제 파일을 추가MaxYear,MinYear,MaxMonth,MinMonth,MaxDay,MinDay등의 숫자 상수를 추가하고 이러한 상수를 사용하여 하드코딩을 대체
⚡ 성능 최적화
helper.go의getAbsValue메서드를 최적화하고 조건 판단을비트 연산으로 대체frozen.go파일의 시간 동결 관련 메서드를 최적화하고원자 연산으로 락 경합을 줄이고 메모리 할당을 최적화- 벤치마크 테스트 파일을 최적화하고
순차 테스트,병렬 테스트,동시 테스트를 커버
♻️ 리팩터링 및 변경
일본어번역 파일을jp.json에서ja.json으로 변경하고, 설명 문서를README.jp.md에서README.ja.md로 변경하여 ISO639-1 표준에 준수- 더 이상 사용되지 않는
ParseWithLayouts메서드를 제거하고ParseByLayouts메서드로 대체 - 더 이상 사용되지 않는
ParseWithFormats메서드를 제거하고ParseByFormats메서드로 대체 - 더 이상 사용되지 않는
CleanTestNow메서드를 제거하고ClearTestNow메서드로 대체 ParseByLayout과ParseByFormat메서드의타임스탬프문자열 파싱 지원을 제거하고,타임스탬프파싱에는CreateFromTimestamp,CreateFromTimestampMilli,CreateFromTimestampMicro,CreateFromTimestampNano메서드를 사용
📝 문서
- 한국어 문서
README.ko.md추가
v2.6.9 (2025-06-28)
♻️ 리팩터링 및 변경
gorm의GormDataType인터페이스 구현을 제거
v2.6.8 (2025-06-12)
🐛 버그 수정
- 파싱 시 레이아웃 템플릿 또는 형식 템플릿이 비어있으면 오류를 반환
♻️ 리팩터링 및 변경
type_builtin.go에서DateTimeType을dateTimeType으로,DateTimeXXXType을dateTimeXXXType으로 이름 변경type_builtin.go에서DateType을dateType으로,DateXXXType을dateXXXType으로 이름 변경type_builtin.go에서TimeType을timeType으로,TimeXXXType을timeXXXType으로 이름 변경
🔧 의존성 업그레이드
tests에서gorm.io/gorm을1.21.1에서1.30.0으로 업그레이드tests에서gorm.io/driver/mysql을1.5.7에서1.6.0으로 업그레이드tests에서gorm.io/driver/postgres를1.5.7에서1.6.0으로 업그레이드tests에서gorm.io/driver/sqlite를1.5.7에서1.6.0으로 업그레이드
📝 문서
- README 파일을 간소화하고 상세한 사용 설명과 예제 사용법을 공식 사이트로 이전
- HelloGitHub 배지 링크 추가
v2.6.7 (2025-05-26)
✨ 새로운 기능
Closest/Farthest메서드의 두 번째 매개변수를 선택적 매개변수로 변경ZeroValue/EpochValue메서드 추가DataTyper인터페이스를 추가하고 내장 타입이DataTyper인터페이스를 구현하도록 활성화
♻️ 리팩터링 및 변경
String메서드에서 null 값 carbon의 검사를 제거- 파일명을
type_interface.go에서interfaces.go로 변경
v2.6.6 (2025-05-19)
✨ 새로운 기능
xorm의curd통합 테스트를 추가하고 현재MySQL/Postgres/SQLite를 커버
🐛 버그 수정
WindowsOS에서 언어 파일을 찾을 수 없는 버그 수정- 새로운
Carbon인스턴스를 생성할 때layout,weekStartsAt,weekendDays및lang값이 손실되는 오류 수정 StartOfWeek와EndOfWeek메서드가 원본Carbon인스턴스를 예상치 못하게 변경하는 버그 수정
🚀 CI
ci액션에서WindowsOS 단위 테스트 추가
v2.6.5 (2025-05-14)
✨ 새로운 기능
Carbon구조체의SetLanguage메서드에 잘못된Language구조체 검사를 추가Carbon구조체의Parse메서드에Postgres/SQLite시간 형식 문자열 파싱 지원을 추가Parse/ParseByLayout/ParseByFormat메서드가빈문자열을 파싱할 때 반환값을nil에서 빈 carbon으로 변경Carbon구조체에IsEmpty메서드를 추가하여 빈 carbon인지 판단Carbon구조체에CleanTestNow를 대체하는ClearTestNow메서드를 추가합니다.CleanTestNow는 향후 제거됩니다.Carbon구조체에ParseWithLayouts를 대체하는ParseByLayouts메서드를 추가합니다.ParseWithLayouts는 향후 제거됩니다.Carbon구조체에ParseWithFormats를 대체하는ParseByFormats메서드를 추가합니다.ParseWithFormats는 향후 제거됩니다.Language구조체의SetResources메서드에 잘못된 리소스 검사를 추가gorm의curd통합 테스트를 추가하고 현재MySQL/Postgres/SQLite를 커버
♻️ 리팩터링 및 변경
Carbon구조체에서GormDataType메서드를 제거하고Value/MarshalJSON메서드를포인터수신자에서값수신자로 변경LayoutType[T]구조체에서GormDataType메서드를 제거하고Value/MarshalJSON메서드를포인터수신자에서값수신자로 변경FormatType[T]구조체에서GormDataType메서드를 제거하고Value/MarshalJSON메서드를포인터수신자에서값수신자로 변경TimestampType[T]구조체에서GormDataType메서드를 제거하고Value/MarshalJSON메서드를포인터수신자에서값수신자로 변경- 단위 테스트를 위해
github.com/stretchr/testify/assert를github.com/stretchr/testify/suite로 대체
🔧 의존성 업그레이드
go버전을1.18에서1.21로 업그레이드
v2.6.4 (2025-04-28)
✨ 새로운 기능
Language구조체에Copy메서드 추가carbon.Timestamp타입 별칭과carbon.NewTimestamp메서드 추가carbon.TimestampMilli타입 별칭과carbon.NewTimestampMilli메서드 추가carbon.TimestampMicro타입 별칭과carbon.NewTimestampMicro메서드 추가carbon.TimestampNano타입 별칭과carbon.NewTimestampNano메서드 추가carbon.DateTime타입 별칭과carbon.NewDateTime메서드 추가carbon.DateTimeMilli타입 별칭과carbon.NewDateTimeMilli메서드 추가carbon.DateTimeMicro타입 별칭과carbon.NewDateTimeMicro메서드 추가carbon.DateTimeNano타입 별칭과carbon.NewDateTimeNano메서드 추가carbon.Date타입 별칭과carbon.NewDate메서드 추가carbon.DateMilli타입 별칭과carbon.NewDateMilli메서드 추가carbon.DateMicro타입 별칭과carbon.NewDateMicro메서드 추가carbon.DateNano타입 별칭과carbon.NewDateNano메서드 추가carbon.Time타입 별칭과carbon.NewTime메서드 추가carbon.TimeMilli타입 별칭과carbon.NewTimeMilli메서드 추가carbon.TimeMicro타입 별칭과carbon.NewTimeMicro메서드 추가carbon.TimeNano타입 별칭과carbon.NewTimeNano메서드 추가
🐛 버그 수정
- 데이터베이스 필드 타입이
nil일 때 패닉을 수정
⚡ 성능 최적화
- 벤치마크 테스트 파일에
b.ResetTimer()추가
♻️ 리팩터링 및 변경
database_types.go를type_carbon.go,type_layout.go,type_format.go,type_timestamp.go로 분할LayoutFactory인터페이스를LayoutTyper로,SetLayout메서드를Layout으로 변경FormatFactory인터페이스를FormatTyper로,SetFormat메서드를Format으로 변경TimestampFactory인터페이스를TimestampTyper로,SetPrecision메서드를Precision으로 변경
v2.6.3 (2025-04-21)
✨ 새로운 기능
- UNIX 에포크 시간(1970-01-01 00:00:00 +0000 UTC)인지 판단하는
IsEpoch메서드 추가 - 주의 끝나는 날을 가져오는
WeekEndsAt메서드 추가 - 주의 주말 날짜를 설정하는
SetWeekendDays메서드 추가 - 기본 주 시작일을 저장하는
DefaultWeekStartsAt전역 변수 추가
🐛 버그 수정
IsWeekend,IsWeekday메서드가 다른 국가에서 일관된 결과를 반환하는 버그 수정StdTime메서드의 null 포인터로 인한 예외 수정 #294
⚡ 성능 최적화
- 벤치마크 테스트 파일
xxx_bench_test.go추가
♻️ 리팩터링 및 변경
- 오류 메서드를
private메서드에서public메서드로 변경 - 주의 기본 시작일을
일요일에서월요일로 변경 MinValue메서드의 연도를-9998에서1로 변경weeksPerLongYear상수를WeeksPerLongYear로 변경
v2.6.2 (2025-04-08)
✨ 새로운 기능
- 시간대 오프셋을 가져오기 위한 형식 기호
o추가 TimestampLayout,TimestampMilliLayout,TimestampMicroLayout,TimestampNanoLayout상수 추가TimestampFormat,TimestampMilliFormat,TimestampMicroFormat,TimestampNanoFormat상수 추가DateTimeMilli,DateTimeMicro,DateTimeNano필드 타입 추가DateMilli,DateMicro,DateNano필드 타입 추가TimeMilli,TimeMicro,TimeNano필드 타입 추가MaxDuration,MinDuration메서드 추가
🐛 버그 수정
- 음력에서
IsLeapMonth판단 오류 버그 수정 AtomFormat과AtomLayout형식이 일치하지 않는 값을 반환하는 버그 수정RFC3339Format과RFC3339Layout형식이 일치하지 않는 값을 반환하는 버그 수정IsDST메서드의 시간대 버그 수정StartOfXXX,EndOfXXX메서드에서 시간대가 누락되는 버그 수정- 다른 달력을
그레고리력으로 변환할 때 시간대가 누락되는 버그 수정
♻️ 리팩터링 및 변경
CreateFromLunar,CreateFromPersian메서드에서 hour, minute, second 매개변수를 제거- 일부 형식 기호 정의를 변경하고, 관련된 기호는
U,V,X,S,T,Z,u,v,x,z를 포함 - 전역 기본 시간대를 설정할 때
time.Local이 더 이상 동기화되지 않음
v2.6.1 (2025-03-27)
✨ 새로운 기능
ParseWithLayouts와ParseWithFormats메서드 추가
🐛 버그 수정
gorm이 데이터를 업데이트할 때updated_at필드가 자동으로 업데이트되지 않는 버그 수정
♻️ 리팩터링 및 변경
formatFactory인터페이스를FormatFactory로,layoutFactory인터페이스를LayoutFactory로,timestampFactory인터페이스를TimestampFactory로 이름 변경하고 타입 제약 추가LayoutType,FormatType,TimestampType구조체 메서드의 반환값을time으로 변경DateTime,Date,Time타입을struct에서string으로 변경Timestamp,TimestampMilli,TimestampMicro,TimestampNano타입을struct에서int64로 변경- 내장 데이터베이스 필드 타입을 새 파일
types.go로 이동
v2.6.0 (2025-03-25)
✨ 새로운 기능
- 시간대 이름을 가져오는
ZoneName메서드 추가 - 오류가 있는지 확인하는
HasError메서드 추가 nil인지 확인하는IsNil메서드 추가carbon에 대한 깊은 복사를 위한Copy메서드 추가- 주 시작일을 가져오는
WeekStartsAt메서드 추가 - 예제 파일
xxx_example.go추가 - 새로운
constant.go파일을 추가하고carbon.go파일에서 상수를 이 파일로 이전
♻️ 리팩터링 및 변경
golang최소 버전 의존성을1.18로 업그레이드carbon,julian,lunar,persian이 값 전달에서 포인터 전달로 변경- 기본 전역 시간대를
Local에서UTC로 변경 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에서 사용자 정의 출력 형식을 구현하기 위해 제네릭 필드를 사용
이전 버전의 업데이트 로그는 releases를 참조하세요