업데이트 로그
v2.6.14 (2025-10-28)
traveler.go파일의 시간 증감 시리즈 메서드를 최적화하여 인스턴스를 복사함으로써 불변성을 보장하여 원본 인스턴스의 수정을 방지그리스어로컬라이즈 언어 지원 추가핀란드어로컬라이즈 언어 지원 추가미얀마어로컬라이즈 언어 지원 추가
v2.6.13 (2025-10-15)
language.go의SetLocale메서드에서sync.Once를 사용하여 언어 파일이 한 번만 로드되도록 보장하고,sync.Map을 사용하여 스레드 안전한 캐싱을 구현helper.go의format2layout메서드에서 이스케이프 문자 처리에 대한 경계 검사를 추가하여 범위를 벗어난 접근으로 인한panic을 방지
v2.6.12 (2025-09-16)
golang환경 의존성을1.21에서1.18로 낮춤testify테스트 프레임워크를v1.10.0에서v1.11.1로 업그레이드type_carbon.go파일의UnmarshalJSON메서드에서isEmpty플래그를 설정하여 빈 값을 나타냄sync.Map을 사용하여 고성능 동시 캐싱을 구현- 잠재적인 경합 상태와 null 포인터 역참조 문제를 수정하여 동시성 안전성 향상
v2.6.11 (2025-07-18)
Sleep을 구조체 메서드에서 전역 메서드로 변경페르시아력리팩토링 및 벤치마크 테스트 파일 추가중국 음력리팩토링 및 벤치마크 테스트 파일 추가율리우스일/수정율리우스일리팩토링 및 벤치마크 테스트 파일 추가히브리력(유대력)지원 추가 및 단위 테스트와 벤치마크 테스트 파일 추가- 전체 성능 테스트 리포트 파일 추가
v2.6.10 (2025-07-07)
한국어번역 파일을jp.json에서ja.json으로 변경하고, 설명 문서를README.jp.md에서README.ja.md로 변경하여 ISO639-1 표준에 준수- 더 이상 사용되지 않는
ParseWithLayouts메서드를 제거하고ParseByLayouts메서드로 대체 - 더 이상 사용되지 않는
ParseWithFormats메서드를 제거하고ParseByFormats메서드로 대체 - 더 이상 사용되지 않는
CleanTestNow메서드를 제거하고ClearTestNow메서드로 대체 ParseByLayout과ParseByFormat메서드의타임스탬프문자열 파싱 지원을 제거하고,타임스탬프파싱에는CreateFromTimestamp,CreateFromTimestampMilli,CreateFromTimestampMicro,CreateFromTimestampNano메서드를 사용helper.go의getAbsValue메서드를 최적화하고 조건 판단을비트 연산으로 대체frozen.go파일의 시간 동결 관련 메서드를 최적화하고원자 연산으로 락 경합을 줄이고 메모리 할당을 최적화- 벤치마크 테스트 파일을 최적화하고
순차 테스트,병렬 테스트,동시 테스트를 커버 - 한국어 문서
README.ko.md추가 Sleep메서드와 관련단위 테스트,벤치마크 테스트,예제 파일을 추가MaxYear,MinYear,MaxMonth,MinMonth,MaxDay,MinDay등의 숫자 상수를 추가하고 이러한 상수를 사용하여 하드코딩을 대체
v2.6.9 (2025-06-28)
gorm의GormDataType인터페이스 구현을 제거
v2.6.8 (2025-06-12)
- 파싱 시 레이아웃 템플릿 또는 형식 템플릿이 비어있으면 오류를 반환
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으로 업그레이드type_builtin.go에서DateTimeType을dateTimeType으로,DateTimeXXXType을dateTimeXXXType으로 이름 변경type_builtin.go에서DateType을dateType으로,DateXXXType을dateXXXType으로 이름 변경type_builtin.go에서TimeType을timeType으로,TimeXXXType을timeXXXType으로 이름 변경- README 파일을 간소화하고 상세한 사용 설명과 예제 사용법을 공식 사이트로 이전
- HelloGitHub 배지 링크 추가
v2.6.7 (2025-05-26)
String메서드에서 null 값 carbon의 검사를 제거- 파일명을
type_interface.go에서interfaces.go로 변경 Closest/Farthest메서드의 두 번째 매개변수를 선택적 매개변수로 변경ZeroValue/EpochValue메서드 추가DataTyper인터페이스를 추가하고 내장 타입이DataTyper인터페이스를 구현하도록 활성화
v2.6.6 (2025-05-19)
WindowsOS에서 언어 파일을 찾을 수 없는 버그 수정- 새로운
Carbon인스턴스를 생성할 때layout,weekStartsAt,weekendDays및lang값이 손실되는 오류 수정 StartOfWeek와EndOfWeek메서드가 원본Carbon인스턴스를 예상치 못하게 변경하는 버그 수정xorm의curd통합 테스트를 추가하고 현재MySQL/Postgres/SQLite를 커버ci액션에서WindowsOS 단위 테스트 추가
v2.6.5 (2025-05-14)
go버전을1.18에서1.21로 업그레이드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는 향후 제거됩니다.Carbon구조체에서GormDataType메서드를 제거하고Value/MarshalJSON메서드를포인터수신자에서값수신자로 변경LayoutType[T]구조체에서GormDataType메서드를 제거하고Value/MarshalJSON메서드를포인터수신자에서값수신자로 변경FormatType[T]구조체에서GormDataType메서드를 제거하고Value/MarshalJSON메서드를포인터수신자에서값수신자로 변경TimestampType[T]구조체에서GormDataType메서드를 제거하고Value/MarshalJSON메서드를포인터수신자에서값수신자로 변경Language구조체의SetResources메서드에 잘못된 리소스 검사를 추가gorm의curd통합 테스트를 추가하고 현재MySQL/Postgres/SQLite를 커버- 단위 테스트를 위해
github.com/stretchr/testify/assert를github.com/stretchr/testify/suite로 대체
v2.6.4 (2025-04-28)
- 데이터베이스 필드 타입이
nil일 때 패닉을 수정 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으로 변경- 벤치마크 테스트 파일에
b.ResetTimer()추가 Language구조체에Copy메서드 추가carbon.Timestamp타입 별칭과carbon.NewTimestamp메서드 추가carbon.TimestampMilli타입 별칭과carbon.NewTimestampMilli메서드 추가carbon.TimestampMicro타입 별칭과carbon.NewTimestampMicro메서드 추가carbon.TimestampNano타입 별칭과carbon.NewTimestampNano메서드 추가carbon.DateTime타입 별칭과carbon.NewDateTime메서드 추가carbon.DateTimeMicro타입 별칭과carbon.NewDateTimeMicro메서드 추가carbon.DateTimeMilli타입 별칭과carbon.NewDateTimeMilli메서드 추가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메서드 추가
v2.6.3 (2025-04-21)
IsWeekend,IsWeekday메서드가 다른 국가에서 일관된 결과를 반환하는 버그 수정StdTime메서드의 null 포인터로 인한 예외 수정 #294- 오류 메서드를
private메서드에서public메서드로 변경 - 주의 기본 시작일을
일요일에서월요일로 변경 MinValue메서드의 연도를-9998에서1로 변경weeksPerLongYear상수를WeeksPerLongYear로 변경- 벤치마크 테스트 파일
xxx_bench_test.go추가 - UNIX 에포크 시간(1970-01-01 00:00:00 +0000 UTC)인지 판단하는
IsEpoch메서드 추가 - 주의 끝나는 날을 가져오는
WeekEndsAt메서드 추가 - 주의 주말 날짜를 설정하는
SetWeekendDays메서드 추가 - 기본 주 시작일을 저장하는
DefaultWeekStartsAt전역 변수 추가
v2.6.2 (2025-04-08)
CreateFromLunar,CreateFromPersian메서드에서 hour, minute, second 매개변수를 제거- 일부 형식 기호 정의를 변경하고, 관련된 기호는
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메서드에서 시간대가 누락되는 버그 수정- 다른 달력을
그레고리력으로 변환할 때 시간대가 누락되는 버그 수정 - 기본 시간대를 설정할 때
time.Local이 더 이상 동기화되지 않음 MaxDuration,MinDuration메서드 추가
v2.6.1 (2025-03-27)
ParseWithLayouts와ParseWithFormats메서드 추가formatFactory인터페이스를FormatFactory로,layoutFactory인터페이스를LayoutFactory로,timestampFactory인터페이스를TimestampFactory로 이름 변경하고 타입 제약 추가LayoutType,FormatType,TimestampType구조체 메서드의 반환값을time으로 변경DateTime,Date,Time타입을struct에서string으로 변경Timestamp,TimestampMilli,TimestampMicro,TimestampNano타입을struct에서int64로 변경- 내장 데이터베이스 필드 타입을 새 파일
types.go로 이동 gorm이 데이터를 업데이트할 때updated_at필드가 자동으로 업데이트되지 않는 버그 수정
v2.6.0 (2025-03-25)
golang최소 버전 의존성을1.18로 업그레이드carbon,julian,lunar,persian이 값 전달에서 포인터 전달로 변경- 시간대 이름을 가져오는
ZoneName메서드 추가 - 오류가 있는지 확인하는
HasError메서드 추가 nil인지 확인하는IsNil메서드 추가carbon에 대한 깊은 복사를 위한Copy메서드 추가- 주 시작일을 가져오는
WeekStartsAt메서드 추가 - 예제 파일
xxx_example.go추가 - 새로운
constant.go파일을 추가하고carbon.go파일에서 상수를 이 파일로 이전 - 기본 전역 시간대를
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를 참조하세요