Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A simple, semantic and developer-friendly time package for golang

License

NotificationsYou must be signed in to change notification settings

dromara/carbon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Carbon ReleaseGo TestGo Report CardGo CoverageCarbon DocLicense

English |简体中文 |日本語

Introduction

A simple, semantic and developer-friendly time package forgolang, has been includedbyawesome-go

Repository

github.com/dromara/carbon

gitee.com/dromara/carbon

gitcode.com/dromara/carbon

Installation

go version >= 1.17
// By githubgoget-ugithub.com/dromara/carbon/v2import"github.com/dromara/carbon/v2"// By giteegoget-ugitee.com/dromara/carbon/v2import"gitee.com/dromara/carbon/v2"// By gitcodegoget-ugitcode.com/dromara/carbon/v2import"gitee.com/dromara/gitcode/v2"

Carbon was donated to thedromara organization, the repository URL has changed. If the previous repository used wasgolang-module/carbon, please replace the original repository with the new repository ingo.mod, or execute the following command:

gomodedit-replacegithub.com/golang-module/carbon/v2=github.com/dromara/carbon/v2

Usage and example

Assuming the current time is 2020-08-05 13:14:15.999999999 +0800 CST

Set globally default values
carbon.SetDefault(carbon.Default{Layout:carbon.DateTimeLayout,Timezone:carbon.UTC,WeekStartsAt:carbon.Sunday,Locale:"en",// value range: translate file name in the lang directory, excluding file suffix})

Suggest setting in the entry file such asmain.go

Convert betweenCarbon andtime.Time
// Convert standard Time.time to Carboncarbon.NewCarbon(time.Now())orcarbon.CreateFromStdTime(time.Now())// Convert Carbon to standard Time.timecarbon.Now().StdTime()
Yesterday, today and tomorrow
// Return datetime of todayfmt.Printf("%s",carbon.Now())// 2020-08-05 13:14:15carbon.Now().String()// 2020-08-05 13:14:15carbon.Now().ToString()// 2020-08-05 13:14:15 +0800 CSTcarbon.Now().ToDateTimeString()// 2020-08-05 13:14:15// Return date of todaycarbon.Now().ToDateString()// 2020-08-05// Return time of todaycarbon.Now().ToTimeString()// 13:14:15// Return datetime of today in a given timezonecarbon.Now(Carbon.NewYork).ToDateTimeString()// 2020-08-05 14:14:15// Return timestamp with second of todaycarbon.Now().Timestamp()// 1596604455// Return timestamp with millisecond of todaycarbon.Now().TimestampMilli()// 1596604455999// Return timestamp with microsecond of todaycarbon.Now().TimestampMicro()// 1596604455999999// Return timestamp with nanosecond of todaycarbon.Now().TimestampNano()// 1596604455999999999// Return datetime of yesterdayfmt.Printf("%s",carbon.Yesterday())// 2020-08-04 13:14:15carbon.Yesterday().String()// 2020-08-04 13:14:15carbon.Yesterday().ToString()// 2020-08-04 13:14:15 +0800 CSTcarbon.Yesterday().ToDateTimeString()// 2020-08-04 13:14:15// Return date of yesterdaycarbon.Yesterday().ToDateString()// 2020-08-04// Return time of yesterdaycarbon.Yesterday().ToTimeString()// 13:14:15// Return datetime of yesterday on a given daycarbon.Parse("2021-01-28 13:14:15").Yesterday().ToDateTimeString()// 2021-01-27 13:14:15// Return datetime of yesterday in a given timezonecarbon.Yesterday(Carbon.NewYork).ToDateTimeString()// 2020-08-04 14:14:15// Return timestamp with second of yesterdaycarbon.Yesterday().Timestamp()// 1596518055// Return timestamp with millisecond of yesterdaycarbon.Yesterday().TimestampMilli()// 1596518055999// Return timestamp with microsecond of yesterdaycarbon.Yesterday().TimestampMicro()// 1596518055999999// Return timestamp with nanosecond of yesterdaycarbon.Yesterday().TimestampNano()// 1596518055999999999// Return datetime of tomorrowfmt.Printf("%s",carbon.Tomorrow())// 2020-08-06 13:14:15carbon.Tomorrow().String()// 2020-08-06 13:14:15carbon.Tomorrow().ToString()// 2020-08-06 13:14:15 +0800 CSTcarbon.Tomorrow().ToDateTimeString()// 2020-08-06 13:14:15// Return date of tomorrowcarbon.Tomorrow().ToDateString()// 2020-08-06// Return time of tomorrowcarbon.Tomorrow().ToTimeString()// 13:14:15// Return datetime of tomorrow on a given daycarbon.Parse("2021-01-28 13:14:15").Tomorrow().ToDateTimeString()// 2021-01-29 13:14:15// Return datetime of tomorrow in a given timezonecarbon.Tomorrow(Carbon.NewYork).ToDateTimeString()// 2020-08-06 14:14:15// Return timestamp with second of tomorrowcarbon.Tomorrow().Timestamp()// 1596690855// Return timestamp with millisecond of tomorrowcarbon.Tomorrow().TimestampMilli()// 1596690855999// Return timestamp with microsecond of tomorrowcarbon.Tomorrow().TimestampMicro()// 1596690855999999// Return timestamp with nanosecond of tomorrowcarbon.Tomorrow().TimestampNano()// 1596690855999999999
Create aCarbon instance
// Create a Carbon instance from a given timestamp with secondcarbon.CreateFromTimestamp(-1).ToString()// 1970-01-01 07:59:59 +0800 CSTcarbon.CreateFromTimestamp(0).ToString()// 1970-01-01 08:00:00 +0800 CSTcarbon.CreateFromTimestamp(1).ToString()// 1970-01-01 08:00:01 +0800 CSTcarbon.CreateFromTimestamp(1649735755).ToString()// 2022-04-12 11:55:55 +0800 CST// Create a Carbon instance from a given timestamp with millisecondcarbon.CreateFromTimestampMilli(1649735755981).ToString()// 2022-04-12 11:55:55.981 +0800 CST// Create a Carbon instance from a given timestamp with microsecondcarbon.CreateFromTimestampMicro(1649735755981566).ToString()// 2022-04-12 11:55:55.981566 +0800 CST// Create a Carbon instance from a given timestamp with nanosecondcarbon.CreateFromTimestampNano(1649735755981566000).ToString()// 2022-04-12 11:55:55.981566 +0800 CST// Create a Carbon instance from a given date and timecarbon.CreateFromDateTime(2020,8,5,13,14,15).ToString()// 2020-08-05 13:14:15 +0800 CST// Create a Carbon instance from a given date and time with millisecondcarbon.CreateFromDateTimeMilli(2020,8,5,13,14,15,999).ToString()// 2020-08-05 13:14:15.999 +0800 CST// Create a Carbon instance from a given date and time with microsecondcarbon.CreateFromDateTimeMicro(2020,8,5,13,14,15,999999).ToString()// 2020-08-05 13:14:15.999999 +0800 CST// Create a Carbon instance from a given date and time with nanosecondcarbon.CreateFromDateTimeNano(2020,8,5,13,14,15,999999999).ToString()// 2020-08-05 13:14:15.999999999 +0800 CST// Create a Carbon instance from a given year, month and daycarbon.CreateFromDate(2020,8,5).ToString()// 2020-08-05 00:00:00 +0800 CST// Create a Carbon instance from a given year, month and day with millisecondcarbon.CreateFromDateMilli(2020,8,5,999).ToString()// 2020-08-05 00:00:00.999 +0800 CST// Create a Carbon instance from a given year, month and day with microsecondcarbon.CreateFromDateMicro(2020,8,5,999999).ToString()// 2020-08-05 00:00:00.999999 +0800 CST// Create a Carbon instance from a given year, month and day with nanosecondcarbon.CreateFromDateNano(2020,8,5,999999999).ToString()// 2020-08-05 00:00:00.999999999 +0800 CST// Create a Carbon instance from a given hour, minute and secondcarbon.CreateFromTime(13,14,15).ToString()// 2020-08-05 13:14:15 +0800 CST// Create a Carbon instance from a given hour, minute and second with millisecondcarbon.CreateFromTimeMilli(13,14,15,999).ToString()// 2020-08-05 13:14:15.999 +0800 CST// Create a Carbon instance from a given hour, minute and second with microsecondcarbon.CreateFromTimeMicro(13,14,15,999999).ToString()// 2020-08-05 13:14:15.999999 +0800 CST// Create a Carbon instance from a given hour, minute and second with nanosecondcarbon.CreateFromTimeNano(13,14,15,999999999).ToString()// 2020-08-05 13:14:15.999999999 +0800 CST
Parse a time string as aCarbon instance
carbon.Parse("").ToDateTimeString()// empty stringcarbon.Parse("0").ToDateTimeString()// empty stringcarbon.Parse("00:00:00").ToDateTimeString()// empty stringcarbon.Parse("0000-00-00").ToDateTimeString()// empty stringcarbon.Parse("0000-00-00 00:00:00").ToDateTimeString()// empty stringcarbon.Parse("now").ToString()// 2020-08-05 13:14:15 +0800 CSTcarbon.Parse("yesterday").ToString()// 2020-08-04 13:14:15 +0800 CSTcarbon.Parse("tomorrow").ToString()// 2020-08-06 13:14:15 +0800 CSTcarbon.Parse("2020").ToString()// 2020-01-01 00:00:00 +0800 CSTcarbon.Parse("2020-8").ToString()// 2020-08-01 00:00:00 +0800 CSTcarbon.Parse("2020-08").ToString()// 2020-08-01 00:00:00 +0800 CSTcarbon.Parse("2020-8-5").ToString()// 2020-08-05 00:00:00 +0800 CSTcarbon.Parse("2020-8-05").ToString()// 2020-08-05 00:00:00 +0800 CSTcarbon.Parse("2020-08-05").ToString()// 2020-08-05 00:00:00 +0800 CSTcarbon.Parse("2020-08-05.999").ToString()// 2020-08-05 00:00:00.999 +0800 CSTcarbon.Parse("2020-08-05.999999").ToString()// 2020-08-05 00:00:00.999999 +0800 CSTcarbon.Parse("2020-08-05.999999999").ToString()// 2020-08-05 00:00:00.999999999 +0800 CSTcarbon.Parse("2020-8-5 13:14:15").ToString()// 2020-08-05 13:14:15 +0800 CSTcarbon.Parse("2020-8-05 13:14:15").ToString()// 2020-08-05 13:14:15 +0800 CSTcarbon.Parse("2020-08-5 13:14:15").ToString()// 2020-08-05 13:14:15 +0800 CSTcarbon.Parse("2020-08-05 13:14:15").ToString()// 2020-08-05 13:14:15 +0800 CSTcarbon.Parse("2020-08-05 13:14:15.999").ToString()// 2020-08-05 13:14:15.999 +0800 CSTcarbon.Parse("2020-08-05 13:14:15.999999").ToString()// 2020-08-05 13:14:15.999999 +0800 CSTcarbon.Parse("2020-08-05 13:14:15.999999999").ToString()// 2020-08-05 13:14:15.999999999 +0800 CSTcarbon.Parse("2020-8-5T13:14:15+08:00").ToString()// 2020-08-05 13:14:15 +0800 CSTcarbon.Parse("2020-8-05T13:14:15+08:00").ToString()// 2020-08-05 13:14:15 +0800 CSTcarbon.Parse("2020-08-05T13:14:15+08:00").ToString()// 2020-08-05 13:14:15 +0800 CSTcarbon.Parse("2020-08-05T13:14:15.999+08:00").ToString()// 2020-08-05 13:14:15.999 +0800 CSTcarbon.Parse("2020-08-05T13:14:15.999999+08:00").ToString()// 2020-08-05 13:14:15.999999 +0800 CSTcarbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToString()// 2020-08-05 13:14:15.999999999 +0800 CSTcarbon.Parse("20200805").ToString()// 2020-08-05 00:00:00 +0800 CSTcarbon.Parse("20200805131415").ToString()// 2020-08-05 13:14:15 +0800 CSTcarbon.Parse("20200805131415.999").ToString()// 2020-08-05 13:14:15.999 +0800 CSTcarbon.Parse("20200805131415.999999").ToString()// 2020-08-05 13:14:15.999999 +0800 CSTcarbon.Parse("20200805131415.999999999").ToString()// 2020-08-05 13:14:15.999999999 +0800 CSTcarbon.Parse("20200805131415.999+08:00").ToString()// 2020-08-05 13:14:15.999 +0800 CSTcarbon.Parse("20200805131415.999999+08:00").ToString()// 2020-08-05 13:14:15.999999 +0800 CSTcarbon.Parse("20200805131415.999999999+08:00").ToString()// 2020-08-05 13:14:15.999999999 +0800 CST
Parse a time string as aCarbon instance by format
carbon.ParseByFormat("2020|08|05 13|14|15","Y|m|d H|i|s").ToDateTimeString()// 2020-08-05 13:14:15carbon.ParseByFormat("It is 2020-08-05 13:14:15","\\I\\t\\i\\s Y-m-d H:i:s").ToDateTimeString()// 2020-08-05 13:14:15carbon.ParseByFormat("今天是 2020年08月05日13时14分15秒","今天是 Y年m月d日H时i分s秒").ToDateTimeString()// 2020-08-05 13:14:15
Parse a time string as aCarbon instance by layout
carbon.ParseByLayout("2020|08|05 13|14|15","2006|01|02 15|04|05").ToDateTimeString()// 2020-08-05 13:14:15carbon.ParseByLayout("It is 2020-08-05 13:14:15","It is 2006-01-02 15:04:05").ToDateTimeString()// 2020-08-05 13:14:15carbon.ParseByLayout("今天是 2020年08月05日13时14分15秒","今天是 2006年01月02日15时04分05秒").ToDateTimeString()// 2020-08-05 13:14:15
Boundary
// Start of the centurycarbon.Parse("2020-08-05 13:14:15").StartOfCentury().ToDateTimeString()// 2000-01-01 00:00:00// End of the centurycarbon.Parse("2020-08-05 13:14:15").EndOfCentury().ToDateTimeString()// 2999-12-31 23:59:59// Start of the decadecarbon.Parse("2020-08-05 13:14:15").StartOfDecade().ToDateTimeString()// 2020-01-01 00:00:00carbon.Parse("2021-08-05 13:14:15").StartOfDecade().ToDateTimeString()// 2020-01-01 00:00:00carbon.Parse("2029-08-05 13:14:15").StartOfDecade().ToDateTimeString()// 2020-01-01 00:00:00// End of the decadecarbon.Parse("2020-08-05 13:14:15").EndOfDecade().ToDateTimeString()// 2029-12-31 23:59:59carbon.Parse("2021-08-05 13:14:15").EndOfDecade().ToDateTimeString()// 2029-12-31 23:59:59carbon.Parse("2029-08-05 13:14:15").EndOfDecade().ToDateTimeString()// 2029-12-31 23:59:59// Start of the yearcarbon.Parse("2020-08-05 13:14:15").StartOfYear().ToDateTimeString()// 2020-01-01 00:00:00// End of the yearcarbon.Parse("2020-08-05 13:14:15").EndOfYear().ToDateTimeString()// 2020-12-31 23:59:59// Start of the quartercarbon.Parse("2020-08-05 13:14:15").StartOfQuarter().ToDateTimeString()// 2020-07-01 00:00:00// End of the quartercarbon.Parse("2020-08-05 13:14:15").EndOfQuarter().ToDateTimeString()// 2020-09-30 23:59:59// Start of the monthcarbon.Parse("2020-08-05 13:14:15").StartOfMonth().ToDateTimeString()// 2020-08-01 00:00:00// End of the monthcarbon.Parse("2020-08-05 13:14:15").EndOfMonth().ToDateTimeString()// 2020-08-31 23:59:59// Start of the weekcarbon.Parse("2020-08-05 13:14:15").StartOfWeek().ToDateTimeString()// 2020-08-02 00:00:00carbon.Parse("2020-08-05 13:14:15").SetWeekStartsAt(carbon.Sunday).StartOfWeek().ToDateTimeString()// 2020-08-02 00:00:00carbon.Parse("2020-08-05 13:14:15").SetWeekStartsAt(carbon.Monday).StartOfWeek().ToDateTimeString()// 2020-08-03 00:00:00// End of the weekcarbon.Parse("2020-08-05 13:14:15").EndOfWeek().ToDateTimeString()// 2020-08-08 23:59:59carbon.Parse("2020-08-05 13:14:15").SetWeekStartsAt(carbon.Sunday).EndOfWeek().ToDateTimeString()// 2020-08-08 23:59:59carbon.Parse("2020-08-05 13:14:15").SetWeekStartsAt(carbon.Monday).EndOfWeek().ToDateTimeString()// 2020-08-09 23:59:59// Start of the daycarbon.Parse("2020-08-05 13:14:15").StartOfDay().ToDateTimeString()// 2020-08-05 00:00:00// End of the daycarbon.Parse("2020-08-05 13:14:15").EndOfDay().ToDateTimeString()// 2020-08-05 23:59:59// Start of the hourcarbon.Parse("2020-08-05 13:14:15").StartOfHour().ToDateTimeString()// 2020-08-05 13:00:00// End of the hourcarbon.Parse("2020-08-05 13:14:15").EndOfHour().ToDateTimeString()// 2020-08-05 13:59:59// Start of the minutecarbon.Parse("2020-08-05 13:14:15").StartOfMinute().ToDateTimeString()// 2020-08-05 13:14:00// End of the minutecarbon.Parse("2020-08-05 13:14:15").EndOfMinute().ToDateTimeString()// 2020-08-05 13:14:59// Start of the secondcarbon.Parse("2020-08-05 13:14:15").StartOfSecond().ToString()// 2020-08-05 13:14:15 +0800 CST// End of the secondcarbon.Parse("2020-08-05 13:14:15").EndOfSecond().ToString()// 2020-08-05 13:14:15.999999999 +0800 CST
Traveler
// Add three centuriescarbon.Parse("2020-02-29 13:14:15").AddCenturies(3).ToDateTimeString()// 2320-02-29 13:14:15// Add three centuries without overflowing monthcarbon.Parse("2020-02-29 13:14:15").AddCenturiesNoOverflow(3).ToDateTimeString()// 2320-02-29 13:14:15// Add one centurycarbon.Parse("2020-02-29 13:14:15").AddCentury().ToDateTimeString()// 2120-02-29 13:14:15// Add one century without overflowing monthcarbon.Parse("2020-02-29 13:14:15").AddCenturyNoOverflow().ToDateTimeString()// 2120-02-29 13:14:15// Subtract three centuriescarbon.Parse("2020-02-29 13:14:15").SubCenturies(3).ToDateTimeString()// 1720-02-29 13:14:15// Subtract three centuries without overflowing monthcarbon.Parse("2020-02-29 13:14:15").SubCenturiesNoOverflow(3).ToDateTimeString()// 1720-02-29 13:14:15// Subtract one centurycarbon.Parse("2020-02-29 13:14:15").SubCentury().ToDateTimeString()// 1920-02-29 13:14:15// Subtract one century without overflowing monthcarbon.Parse("2020-02-29 13:14:15").SubCenturyNoOverflow().ToDateTimeString()// 1920-02-20 13:14:15// Add three decadescarbon.Parse("2020-02-29 13:14:15").AddDecades(3).ToDateTimeString()// 2050-03-01 13:14:15// Add three decades without overflowing monthcarbon.Parse("2020-02-29 13:14:15").AddDecadesNoOverflow(3).ToDateTimeString()// 2050-02-28 13:14:15// Add one decadecarbon.Parse("2020-02-29 13:14:15").AddDecade().ToDateTimeString()// 2030-03-01 13:14:15// Add one decade without overflowing monthcarbon.Parse("2020-02-29 13:14:15").AddDecadeNoOverflow().ToDateTimeString()// 2030-02-28 13:14:15// Subtract three decadescarbon.Parse("2020-02-29 13:14:15").SubDecades(3).ToDateTimeString()// 1990-03-01 13:14:15// Subtract three decades without overflowing monthcarbon.Parse("2020-02-29 13:14:15").SubDecadesNoOverflow(3).ToDateTimeString()// 1990-02-28 13:14:15// Subtract one decadecarbon.Parse("2020-02-29 13:14:15").SubDecade().ToDateTimeString()// 2010-03-01 13:14:15// Subtract one decade without overflowing monthcarbon.Parse("2020-02-29 13:14:15").SubDecadeNoOverflow().ToDateTimeString()// 2010-02-28 13:14:15// Add three yearscarbon.Parse("2020-02-29 13:14:15").AddYears(3).ToDateTimeString()// 2023-03-01 13:14:15// Add three years without overflowing monthcarbon.Parse("2020-02-29 13:14:15").AddYearsNoOverflow(3).ToDateTimeString()// 2023-02-28 13:14:15// Add one yearcarbon.Parse("2020-02-29 13:14:15").AddYear().ToDateTimeString()// 2021-03-01 13:14:15// Add one year without overflowing monthcarbon.Parse("2020-02-29 13:14:15").AddYearNoOverflow().ToDateTimeString()// 2021-02-28 13:14:15// Subtract three yearscarbon.Parse("2020-02-29 13:14:15").SubYears(3).ToDateTimeString()// 2017-03-01 13:14:15// Subtract three years without overflowing monthcarbon.Parse("2020-02-29 13:14:15").SubYearsNoOverflow(3).ToDateTimeString()// 2017-02-28 13:14:15// Subtract one yearcarbon.Parse("2020-02-29 13:14:15").SubYear().ToDateTimeString()// 2019-03-01 13:14:15// Subtract one year without overflowing monthcarbon.Parse("2020-02-29 13:14:15").SubYearNoOverflow().ToDateTimeString()// 2019-02-28 13:14:15// Add three quarterscarbon.Parse("2019-05-31 13:14:15").AddQuarters(3).ToDateTimeString()// 2020-03-02 13:14:15// Add three quarters without overflowing monthcarbon.Parse("2019-05-31 13:14:15").AddQuartersNoOverflow(3).ToDateTimeString()// 2020-02-29 13:14:15// Add one quartercarbon.Parse("2019-11-30 13:14:15").AddQuarter().ToDateTimeString()// 2020-03-01 13:14:15// Add one quarter without overflowing monthcarbon.Parse("2019-11-30 13:14:15").AddQuarterNoOverflow().ToDateTimeString()// 2020-02-29 13:14:15// Subtract three quarterscarbon.Parse("2019-08-31 13:14:15").SubQuarters(3).ToDateTimeString()// 2019-03-03 13:14:15// Subtract three quarters without overflowing monthcarbon.Parse("2019-08-31 13:14:15").SubQuartersNoOverflow(3).ToDateTimeString()// 2019-02-28 13:14:15// Subtract one quartercarbon.Parse("2020-05-31 13:14:15").SubQuarter().ToDateTimeString()// 2020-03-02 13:14:15// Subtract one quarter without overflowing monthcarbon.Parse("2020-05-31 13:14:15").SubQuarterNoOverflow().ToDateTimeString()// 2020-02-29 13:14:15// Add three monthscarbon.Parse("2020-02-29 13:14:15").AddMonths(3).ToDateTimeString()// 2020-05-29 13:14:15// Add three months without overflowing monthcarbon.Parse("2020-02-29 13:14:15").AddMonthsNoOverflow(3).ToDateTimeString()// 2020-05-29 13:14:15// Add one monthcarbon.Parse("2020-01-31 13:14:15").AddMonth().ToDateTimeString()// 2020-03-02 13:14:15// Add one month without overflowing monthcarbon.Parse("2020-01-31 13:14:15").AddMonthNoOverflow().ToDateTimeString()// 2020-02-29 13:14:15// Subtract three monthscarbon.Parse("2020-02-29 13:14:15").SubMonths(3).ToDateTimeString()// 2019-11-29 13:14:15// Subtract three months without overflowing monthcarbon.Parse("2020-02-29 13:14:15").SubMonthsNoOverflow(3).ToDateTimeString()// 2019-11-29 13:14:15// Subtract one monthcarbon.Parse("2020-03-31 13:14:15").SubMonth().ToDateTimeString()// 2020-03-02 13:14:15// Subtract one month without overflowing monthcarbon.Parse("2020-03-31 13:14:15").SubMonthNoOverflow().ToDateTimeString()// 2020-02-29 13:14:15// Add three weekscarbon.Parse("2020-02-29 13:14:15").AddWeeks(3).ToDateTimeString()// 2020-03-21 13:14:15// Add one weekcarbon.Parse("2020-02-29 13:14:15").AddWeek().ToDateTimeString()// 2020-03-07 13:14:15// Subtract three weekscarbon.Parse("2020-02-29 13:14:15").SubWeeks(3).ToDateTimeString()// 2020-02-08 13:14:15// Subtract three weekcarbon.Parse("2020-02-29 13:14:15").SubWeek().ToDateTimeString()// 2020-02-22 13:14:15// Add three dayscarbon.Parse("2020-08-05 13:14:15").AddDays(3).ToDateTimeString()// 2020-08-08 13:14:15// Add one daycarbon.Parse("2020-08-05 13:14:15").AddDay().ToDateTimeString()// 2020-08-05 13:14:15// Subtract three dayscarbon.Parse("2020-08-05 13:14:15").SubDays(3).ToDateTimeString()// 2020-08-02 13:14:15// Subtract one daycarbon.Parse("2020-08-05 13:14:15").SubDay().ToDateTimeString()// 2020-08-04 13:14:15// Add three hourscarbon.Parse("2020-08-05 13:14:15").AddHours(3).ToDateTimeString()// 2020-08-05 16:14:15// Add two and a half hourscarbon.Parse("2020-08-05 13:14:15").AddDuration("2.5h").ToDateTimeString()// 2020-08-05 15:44:15carbon.Parse("2020-08-05 13:14:15").AddDuration("2h30m").ToDateTimeString()// 2020-08-05 15:44:15// Add one hourcarbon.Parse("2020-08-05 13:14:15").AddHour().ToDateTimeString()// 2020-08-05 14:14:15// Subtract three hourscarbon.Parse("2020-08-05 13:14:15").SubHours(3).ToDateTimeString()// 2020-08-05 10:14:15// Subtract two and a half hourscarbon.Parse("2020-08-05 13:14:15").SubDuration("2.5h").ToDateTimeString()// 2020-08-05 10:44:15carbon.Parse("2020-08-05 13:14:15").SubDuration("2h30m").ToDateTimeString()// 2020-08-05 10:44:15// Subtract one hourcarbon.Parse("2020-08-05 13:14:15").SubHour().ToDateTimeString()// 2020-08-05 12:14:15// Add three minutescarbon.Parse("2020-08-05 13:14:15").AddMinutes(3).ToDateTimeString()// 2020-08-05 13:17:15// Add two and a half minutescarbon.Parse("2020-08-05 13:14:15").AddDuration("2.5m").ToDateTimeString()// 2020-08-05 13:16:45carbon.Parse("2020-08-05 13:14:15").AddDuration("2m30s").ToDateTimeString()// 2020-08-05 13:16:45// Add one minutecarbon.Parse("2020-08-05 13:14:15").AddMinute().ToDateTimeString()// 2020-08-05 13:15:15// Subtract three minutescarbon.Parse("2020-08-05 13:14:15").SubMinutes(3).ToDateTimeString()// 2020-08-05 13:11:15// Subtract two and a half minutescarbon.Parse("2020-08-05 13:14:15").SubDuration("2.5m").ToDateTimeString()// 2020-08-05 13:11:45// Subtract one minutecarbon.Parse("2020-08-05 13:14:15").SubMinute().ToDateTimeString()// 2020-08-05 13:13:15// Add three secondscarbon.Parse("2020-08-05 13:14:15").AddSeconds(3).ToDateTimeString()// 2020-08-05 13:14:18// Add two and a half secondscarbon.Parse("2020-08-05 13:14:15").AddDuration("2.5s").ToDateTimeString()// 2020-08-05 13:14:17// Add one secondcarbon.Parse("2020-08-05 13:14:15").AddSecond().ToDateTimeString()// 2020-08-05 13:14:16// Subtract three secondscarbon.Parse("2020-08-05 13:14:15").SubSeconds(3).ToDateTimeString()// 2020-08-05 13:14:12// Subtract two and a half secondscarbon.Parse("2020-08-05 13:14:15").SubDuration("2.5s").ToDateTimeString()// 2020-08-05 13:14:12// Subtract one secondcarbon.Parse("2020-08-05 13:14:15").SubSecond().ToDateTimeString()// 2020-08-05 13:14:14// Add three millisecondscarbon.Parse("2020-08-05 13:14:15.222222222").AddMilliseconds(3).ToString()// 2020-08-05 13:14:15.225222222 +0800 CST// Add one millisecondcarbon.Parse("2020-08-05 13:14:15.222222222").AddMillisecond().ToString()// 2020-08-05 13:14:15.223222222 +0800 CST// Subtract three millisecondscarbon.Parse("2020-08-05 13:14:15.222222222").SubMilliseconds(3).ToString()// 2020-08-05 13:14:15.219222222 +0800 CST// Subtract one millisecondcarbon.Parse("2020-08-05 13:14:15.222222222").SubMillisecond().ToString()// 2020-08-05 13:14:15.221222222 +0800 CST// Add three microsecondscarbon.Parse("2020-08-05 13:14:15.222222222").AddMicroseconds(3).ToString()// 2020-08-05 13:14:15.222225222 +0800 CST// Add one microsecondcarbon.Parse("2020-08-05 13:14:15.222222222").AddMicrosecond().ToString()// 2020-08-05 13:14:15.222223222 +0800 CST// Subtract three microsecondscarbon.Parse("2020-08-05 13:14:15.222222222").SubMicroseconds(3).ToString()// 2020-08-05 13:14:15.222219222 +0800 CST// Subtract one microsecondcarbon.Parse("2020-08-05 13:14:15.222222222").SubMicrosecond().ToString()// 2020-08-05 13:14:15.222221222 +0800 CST// Add three nanosecondscarbon.Parse("2020-08-05 13:14:15.222222222").AddNanoseconds(3).ToString()// 2020-08-05 13:14:15.222222225 +0800 CST// Add one nanosecondcarbon.Parse("2020-08-05 13:14:15.222222222").AddNanosecond().ToString()// 2020-08-05 13:14:15.222222223 +0800 CST// Subtract three nanosecondscarbon.Parse("2020-08-05 13:14:15.222222222").SubNanoseconds(3).ToString()// 2020-08-05 13:14:15.222222219 +0800 CST// Subtract one nanosecondcarbon.Parse("2020-08-05 13:14:15.222222222").SubNanosecond().ToString()// 2020-08-05 13:14:15.222222221 +0800 CST
Difference
// Difference in yearscarbon.Parse("2021-08-05 13:14:15").DiffInYears(carbon.Parse("2020-08-05 13:14:15"))// -1// Difference in years with absolute valuecarbon.Parse("2021-08-05 13:14:15").DiffAbsInYears(carbon.Parse("2020-08-05 13:14:15"))// 1// Difference in monthscarbon.Parse("2020-08-05 13:14:15").DiffInMonths(carbon.Parse("2020-07-05 13:14:15"))// -1// Difference in months with absolute valuecarbon.Parse("2020-08-05 13:14:15").DiffAbsInMonths(carbon.Parse("2020-07-05 13:14:15"))// 1// Difference in weekscarbon.Parse("2020-08-05 13:14:15").DiffInWeeks(carbon.Parse("2020-07-28 13:14:15"))// -1// Difference in weeks with absolute valuecarbon.Parse("2020-08-05 13:14:15").DiffAbsInWeeks(carbon.Parse("2020-07-28 13:14:15"))// 1// Difference in dayscarbon.Parse("2020-08-05 13:14:15").DiffInDays(carbon.Parse("2020-08-04 13:14:15"))// -1// Difference in days with absolute valuecarbon.Parse("2020-08-05 13:14:15").DiffAbsInDays(carbon.Parse("2020-08-04 13:14:15"))// 1// Difference in hourscarbon.Parse("2020-08-05 13:14:15").DiffInHours(carbon.Parse("2020-08-05 12:14:15"))// -1// Difference in hours with absolute valuecarbon.Parse("2020-08-05 13:14:15").DiffAbsInHours(carbon.Parse("2020-08-05 12:14:15"))// 1// Difference in minutescarbon.Parse("2020-08-05 13:14:15").DiffInMinutes(carbon.Parse("2020-08-05 13:13:15"))// -1// Difference in minutes with absolute valuecarbon.Parse("2020-08-05 13:14:15").DiffAbsInMinutes(carbon.Parse("2020-08-05 13:13:15"))// 1// Difference in secondscarbon.Parse("2020-08-05 13:14:15").DiffInSeconds(carbon.Parse("2020-08-05 13:14:14"))// -1// Difference in seconds with absolute valuecarbon.Parse("2020-08-05 13:14:15").DiffAbsInSeconds(carbon.Parse("2020-08-05 13:14:14"))// 1// Difference in stringcarbon.Now().DiffInString()// just nowcarbon.Now().AddYearsNoOverflow(1).DiffInString()// -1 yearcarbon.Now().SubYearsNoOverflow(1).DiffInString()// 1 year// Difference in string with absolute valuecarbon.Now().DiffAbsInString(carbon.Now())// just nowcarbon.Now().AddYearsNoOverflow(1).DiffAbsInString(carbon.Now())// 1 yearcarbon.Now().SubYearsNoOverflow(1).DiffAbsInString(carbon.Now())// 1 year// Difference in durationnow:=carbon.Now()now.DiffInDuration(now).String()// 0snow.AddHour().DiffInDuration(now).String()// 1h0m0snow.SubHour().DiffInDuration(now).String()// -1h0m0s// Difference in duration with absolute valuenow.DiffAbsInDuration(now).String()// 0snow.AddHour().DiffAbsInDuration(now).String()// 1h0m0snow.SubHour().DiffAbsInDuration(now).String()// 1h0m0s// Difference in a human-readable formatcarbon.Parse("2020-08-05 13:14:15").DiffForHumans()// just nowcarbon.Parse("2019-08-05 13:14:15").DiffForHumans()// 1 year agocarbon.Parse("2018-08-05 13:14:15").DiffForHumans()// 2 years agocarbon.Parse("2021-08-05 13:14:15").DiffForHumans()// 1 year from nowcarbon.Parse("2022-08-05 13:14:15").DiffForHumans()// 2 years from now// Difference in a human-readable format from now timecarbon.Parse("2020-08-05 13:14:15").DiffForHumans(carbon.Now())// 1 year beforecarbon.Parse("2019-08-05 13:14:15").DiffForHumans(carbon.Now())// 2 years beforecarbon.Parse("2018-08-05 13:14:15").DiffForHumans(carbon.Now())// 1 year aftercarbon.Parse("2022-08-05 13:14:15").DiffForHumans(carbon.Now())// 2 years after
Extremum
c0:=carbon.Parse("2023-04-01")c1:=carbon.Parse("2023-03-28")c2:=carbon.Parse("2023-04-16")// Return the closest Carbon instancec0.Closest(c1,c2)// c1// Return the farthest Carbon instancec0.Farthest(c1,c2)// c2yesterday:=carbon.Yesterday()today:=carbon.Now()tomorrow:=carbon.Tomorrow()// Return the maximum Carbon instancecarbon.Max(yesterday,today,tomorrow)// tomorrow// Return the minimum Carbon instancecarbon.Min(yesterday,today,tomorrow)// yesterday// Return a Carbon instance for the greatest supported datecarbon.MaxValue().ToString()// 9999-12-31 23:59:59.999999999 +0000 UTC// Return a Carbon instance for the lowest supported datecarbon.MinValue().ToString()// -9998-01-01 00:00:00 +0000 UTC
Comparison
// Whether is daylight saving timecarbon.Parse("").IsDST()// falsecarbon.Parse("0").IsDST()// falsecarbon.Parse("0000-00-00 00:00:00").IsDST()// falsecarbon.Parse("0000-00-00").IsDST()// falsecarbon.Parse("00:00:00").IsDST()// falsecarbon.Parse("2023-01-01","Australia/Brisbane").IsDST()// falsecarbon.Parse("2023-01-01","Australia/Sydney").IsDST()// true// Whether is zero time(0001-01-01 00:00:00 +0000 UTC)carbon.Parse("").IsZero()// truecarbon.Parse("0").IsZero()// truecarbon.Parse("0000-00-00 00:00:00").IsZero()// truecarbon.Parse("0000-00-00").IsZero()// truecarbon.Parse("00:00:00").IsZero()// truecarbon.Parse("2020-08-05 00:00:00").IsZero()// falsecarbon.Parse("2020-08-05").IsZero()// falsecarbon.Parse("2020-08-05").SetTimezone("xxx").IsZero()// false// Whether is valid timecarbon.Parse("").IsValid()// falsecarbon.Parse("0").IsValid()// falsecarbon.Parse("0000-00-00 00:00:00").IsValid()// falsecarbon.Parse("0000-00-00").IsValid()// falsecarbon.Parse("00:00:00").IsValid()// falsecarbon.Parse("2020-08-05 00:00:00").IsValid()// truecarbon.Parse("2020-08-05").IsValid()// truecarbon.Parse("2020-08-05").SetTimezone("xxx").IsValid()// false// Whether is invalid timecarbon.Parse("").IsInvalid()// truecarbon.Parse("0").IsInvalid()// truecarbon.Parse("0000-00-00 00:00:00").IsInvalid()// truecarbon.Parse("0000-00-00").IsInvalid()// truecarbon.Parse("00:00:00").IsInvalid()// truecarbon.Parse("2020-08-05 00:00:00").IsInvalid()// falsecarbon.Parse("2020-08-05").IsInvalid()// falsecarbon.Parse("2020-08-05").SetTimezone("xxx").IsInvalid()// true// Whether is before nooncarbon.Parse("2020-08-05 00:00:00").IsAM()// truecarbon.Parse("2020-08-05 08:00:00").IsAM()// truecarbon.Parse("2020-08-05 12:00:00").IsAM()// falsecarbon.Parse("2020-08-05 13:00:00").IsAM()// false// Whether is after nooncarbon.Parse("2020-08-05 00:00:00").IsPM()// falsecarbon.Parse("2020-08-05 08:00:00").IsPM()// falsecarbon.Parse("2020-08-05 12:00:00").IsPM()// truecarbon.Parse("2020-08-05 13:00:00").IsPM()// true// Whether is now timecarbon.Now().IsNow()// true// Whether is future timecarbon.Tomorrow().IsFuture()// true// Whether is pass timecarbon.Yesterday().IsPast()// true// Whether is a leap yearcarbon.Parse("2020-08-05 13:14:15").IsLeapYear()// true// Whether is a long yearcarbon.Parse("2020-08-05 13:14:15").IsLongYear()// true// Whether is Januarycarbon.Parse("2020-08-05 13:14:15").IsJanuary()// false// Whether is Februarycarbon.Parse("2020-08-05 13:14:15").IsFebruary()// false// Whether is Marchcarbon.Parse("2020-08-05 13:14:15").IsMarch()// false// Whether is Aprilcarbon.Parse("2020-08-05 13:14:15").IsApril()// false// Whether is Maycarbon.Parse("2020-08-05 13:14:15").IsMay()// false// Whether is Junecarbon.Parse("2020-08-05 13:14:15").IsJune()// false// Whether is Julycarbon.Parse("2020-08-05 13:14:15").IsJuly()// false// Whether is Augustcarbon.Parse("2020-08-05 13:14:15").IsAugust()// false// Whether is Septembercarbon.Parse("2020-08-05 13:14:15").IsSeptember()// true// Whether is Octobercarbon.Parse("2020-08-05 13:14:15").IsOctober()// false// Whether is Novembercarbon.Parse("2020-08-05 13:14:15").IsNovember()// false// Whether is Decembercarbon.Parse("2020-08-05 13:14:15").IsDecember()// false// Whether is Mondaycarbon.Parse("2020-08-05 13:14:15").IsMonday()// false// Whether is Tuesdaycarbon.Parse("2020-08-05 13:14:15").IsTuesday()// true// Whether is Wednesdaycarbon.Parse("2020-08-05 13:14:15").IsWednesday()// false// Whether is Thursdaycarbon.Parse("2020-08-05 13:14:15").IsThursday()// false// Whether is Fridaycarbon.Parse("2020-08-05 13:14:15").IsFriday()// false// Whether is Saturdaycarbon.Parse("2020-08-05 13:14:15").IsSaturday()// false// Whether is Sundaycarbon.Parse("2020-08-05 13:14:15").IsSunday()// false// Whether is weekdaycarbon.Parse("2020-08-05 13:14:15").IsWeekday()// false// Whether is weekendcarbon.Parse("2020-08-05 13:14:15").IsWeekend()// true// Whether is yesterdaycarbon.Parse("2020-08-04 13:14:15").IsYesterday()// truecarbon.Parse("2020-08-04 00:00:00").IsYesterday()// truecarbon.Parse("2020-08-04").IsYesterday()// true// Whether is todaycarbon.Parse("2020-08-05 13:14:15").IsToday()// truecarbon.Parse("2020-08-05 00:00:00").IsToday()// truecarbon.Parse("2020-08-05").IsToday()// true// Whether is tomorrowcarbon.Parse("2020-08-06 13:14:15").IsTomorrow()// truecarbon.Parse("2020-08-06 00:00:00").IsTomorrow()// truecarbon.Parse("2020-08-06").IsTomorrow()// true// Whether is same centurycarbon.Parse("2020-08-05 13:14:15").IsSameCentury(carbon.Parse("3020-08-05 13:14:15"))// falsecarbon.Parse("2020-08-05 13:14:15").IsSameCentury(carbon.Parse("2099-08-05 13:14:15"))// true// Whether is same decadecarbon.Parse("2020-08-05 13:14:15").IsSameDecade(carbon.Parse("2030-08-05 13:14:15"))// falsecarbon.Parse("2020-08-05 13:14:15").IsSameDecade(carbon.Parse("2120-08-05 13:14:15"))// true// Whether is same yearcarbon.Parse("2020-08-05 00:00:00").IsSameYear(carbon.Parse("2021-08-05 13:14:15"))// falsecarbon.Parse("2020-01-01 00:00:00").IsSameYear(carbon.Parse("2020-12-31 13:14:15"))// true// Whether is same quartercarbon.Parse("2020-08-05 00:00:00").IsSameQuarter(carbon.Parse("2020-09-05 13:14:15"))// falsecarbon.Parse("2020-01-01 00:00:00").IsSameQuarter(carbon.Parse("2021-01-31 13:14:15"))// true// Whether is same monthcarbon.Parse("2020-01-01 00:00:00").IsSameMonth(carbon.Parse("2021-01-31 13:14:15"))// falsecarbon.Parse("2020-01-01 00:00:00").IsSameMonth(carbon.Parse("2020-01-31 13:14:15"))// true// Whether is same daycarbon.Parse("2020-08-05 13:14:15").IsSameDay(carbon.Parse("2021-08-05 13:14:15"))// falsecarbon.Parse("2020-08-05 00:00:00").IsSameDay(carbon.Parse("2020-08-05 13:14:15"))// true// Whether is same hourcarbon.Parse("2020-08-05 13:14:15").IsSameHour(carbon.Parse("2021-08-05 13:14:15"))// falsecarbon.Parse("2020-08-05 13:00:00").IsSameHour(carbon.Parse("2020-08-05 13:14:15"))// true// Whether is same minutecarbon.Parse("2020-08-05 13:14:15").IsSameMinute(carbon.Parse("2021-08-05 13:14:15"))// falsecarbon.Parse("2020-08-05 13:14:00").IsSameMinute(carbon.Parse("2020-08-05 13:14:15"))// true// Whether is same secondcarbon.Parse("2020-08-05 13:14:15").IsSameSecond(carbon.Parse("2021-08-05 13:14:15"))// falsecarbon.Parse("2020-08-05 13:14:15").IsSameSecond(carbon.Parse("2020-08-05 13:14:15"))// true// Whether greater thancarbon.Parse("2020-08-05 13:14:15").Gt(carbon.Parse("2020-08-04 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").Gt(carbon.Parse("2020-08-05 13:14:15"))// falsecarbon.Parse("2020-08-05 13:14:15").Compare(">",carbon.Parse("2020-08-04 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").Compare(">",carbon.Parse("2020-08-05 13:14:15"))// false// Whether less thancarbon.Parse("2020-08-05 13:14:15").Lt(carbon.Parse("2020-08-06 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").Lt(carbon.Parse("2020-08-05 13:14:15"))// falsecarbon.Parse("2020-08-05 13:14:15").Compare("<",carbon.Parse("2020-08-06 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").Compare("<",carbon.Parse("2020-08-05 13:14:15"))// false// Whether equalcarbon.Parse("2020-08-05 13:14:15").Eq(carbon.Parse("2020-08-05 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").Eq(carbon.Parse("2020-08-05 13:14:00"))// falsecarbon.Parse("2020-08-05 13:14:15").Compare("=",carbon.Parse("2020-08-05 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").Compare("=",carbon.Parse("2020-08-05 13:14:00"))// false// Whether not equalcarbon.Parse("2020-08-05 13:14:15").Ne(carbon.Parse("2020-08-06 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").Ne(carbon.Parse("2020-08-05 13:14:15"))// falsecarbon.Parse("2020-08-05 13:14:15").Compare("!=",carbon.Parse("2020-08-06 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").Compare("<>",carbon.Parse("2020-08-05 13:14:15"))// false// Whether greater than or equalcarbon.Parse("2020-08-05 13:14:15").Gte(carbon.Parse("2020-08-04 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").Gte(carbon.Parse("2020-08-05 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").Compare(">=",carbon.Parse("2020-08-04 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").Compare(">=",carbon.Parse("2020-08-05 13:14:15"))// true// Whether less than or equalcarbon.Parse("2020-08-05 13:14:15").Lte(carbon.Parse("2020-08-06 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").Lte(carbon.Parse("2020-08-05 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").Compare("<=",carbon.Parse("2020-08-06 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").Compare("<=",carbon.Parse("2020-08-05 13:14:15"))// true// Whether between two Carbon instances, excluded the start and end Carbon instancecarbon.Parse("2020-08-05 13:14:15").Between(carbon.Parse("2020-08-05 13:14:15"),carbon.Parse("2020-08-06 13:14:15"))// falsecarbon.Parse("2020-08-05 13:14:15").Between(carbon.Parse("2020-08-04 13:14:15"),carbon.Parse("2020-08-06 13:14:15"))// true// Whether between two Carbon instances, included the start Carbon instancecarbon.Parse("2020-08-05 13:14:15").BetweenIncludedStart(carbon.Parse("2020-08-05 13:14:15"),carbon.Parse("2020-08-06 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").BetweenIncludedStart(carbon.Parse("2020-08-04 13:14:15"),carbon.Parse("2020-08-06 13:14:15"))// true// Whether between two Carbon instances, included the end Carbon instancecarbon.Parse("2020-08-05 13:14:15").BetweenIncludedEnd(carbon.Parse("2020-08-04 13:14:15"),carbon.Parse("2020-08-05 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").BetweenIncludedEnd(carbon.Parse("2020-08-04 13:14:15"),carbon.Parse("2020-08-06 13:14:15"))// true// Whether between two Carbon instances, included the start and end Carbon instancecarbon.Parse("2020-08-05 13:14:15").BetweenIncludedBoth(carbon.Parse("2020-08-05 13:14:15"),carbon.Parse("2020-08-06 13:14:15"))// truecarbon.Parse("2020-08-05 13:14:15").BetweenIncludedBoth(carbon.Parse("2020-08-04 13:14:15"),carbon.Parse("2020-08-05 13:14:15"))// true

For the definition of long year, please seehttps://en.wikipedia.org/wiki/ISO_8601#Week_dates

Setter
// Set timezonecarbon.SetTimezone(carbon.PRC).Now().ToDateTimeString()// 2020-08-05 13:14:15carbon.SetTimezone(carbon.Tokyo).Now().ToDateTimeString()// 2020-08-05 14:14:15carbon.SetTimezone(carbon.Tokyo).Now().SetTimezone(carbon.PRC).ToDateTimeString()// 2020-08-05 12:14:15// Set locationutc,_:=time.LoadLocation(carbon.UTC)carbon.SetLocation(utc).Now().ToDateTimeString()// 2022-06-28 09:25:38tokyo,_:=time.LoadLocation(carbon.Tokyo)carbon.SetLocation(tokyo).Now().ToDateTimeString()// 2022-06-28 18:25:38// Set localecarbon.Parse("2020-07-05 13:14:15").SetLocale("en").DiffForHumans()// 1 month beforecarbon.Parse("2020-07-05 13:14:15").SetLocale("zh-CN").DiffForHumans()// 1 月前// Set year, month, day, hour, minute and secondcarbon.Parse("2020-01-01").SetDateTime(2019,2,2,13,14,15).ToString()// 2019-02-02 13:14:15 +0800 CSTcarbon.Parse("2020-01-01").SetDateTime(2019,2,31,13,14,15).ToString()// 2019-03-03 13:14:15 +0800 CST// Set year, month, day, hour, minute, second and millisecondcarbon.Parse("2020-01-01").SetDateTimeMilli(2019,2,2,13,14,15,999).ToString()// 2019-02-02 13:14:15.999 +0800 CSTcarbon.Parse("2020-01-01").SetDateTimeMilli(2019,2,31,13,14,15,999).ToString()// 2019-03-03 13:14:15.999 +0800 CST// Set year, month, day, hour, minute, second and microsecondcarbon.Parse("2020-01-01").SetDateTimeMicro(2019,2,2,13,14,15,999999).ToString()// 2019-02-02 13:14:15.999999 +0800 CSTcarbon.Parse("2020-01-01").SetDateTimeMicro(2019,2,31,13,14,15,999999).ToString()// 2019-03-03 13:14:15.999999 +0800 CST// Set year, month, day, hour, minute, second and nanosecondcarbon.Parse("2020-01-01").SetDateTimeNano(2019,2,2,13,14,15,999999999).ToString()// 2019-02-02 13:14:15.999999999 +0800 CSTcarbon.Parse("2020-01-01").SetDateTimeNano(2019,2,31,13,14,15,999999999).ToString()// 2019-03-03 13:14:15.999999999 +0800 CST// Set year, month and daycarbon.Parse("2020-01-01").SetDate(2019,2,2).ToString()// 2019-02-02 00:00:00 +0800 CSTcarbon.Parse("2020-01-01").SetDate(2019,2,31).ToString()// 2019-03-03 00:00:00 +0800 CST// Set year, month, day and millisecondcarbon.Parse("2020-01-01").SetDateMilli(2019,2,2,999).ToString()// 2019-02-02 00:00:00.999 +0800 CSTcarbon.Parse("2020-01-01").SetDateMilli(2019,2,31,999).ToString()// 2019-03-03 00:00:00.999 +0800 CST// Set year, month, day and microsecondcarbon.Parse("2020-01-01").SetDateMicro(2019,2,2,999999).ToString()// 2019-02-02 00:00:00.999999 +0800 CSTcarbon.Parse("2020-01-01").SetDateMicro(2019,2,31,999999).ToString()// 2019-03-03 00:00:00.999999 +0800 CST// Set year, month, day and nanosecondcarbon.Parse("2020-01-01").SetDateNano(2019,2,2,999999999).ToString()// 2019-02-02 00:00:00.999999999 +0800 CSTcarbon.Parse("2020-01-01").SetDateNano(2019,2,31,999999999).ToString()// 2019-03-03 00:00:00.999999999 +0800 CST// Set hour, minute and secondcarbon.Parse("2020-01-01").SetTime(13,14,15).ToString()// 2020-01-01 13:14:15 +0800 CSTcarbon.Parse("2020-01-01").SetTime(13,14,90).ToString()// 2020-01-01 13:15:30 +0800 CST// Set hour, minute, second and millisecondcarbon.Parse("2020-01-01").SetTimeMilli(13,14,15,999).ToString()// 2020-01-01 13:14:15.999 +0800 CSTcarbon.Parse("2020-01-01").SetTimeMilli(13,14,90,999).ToString()// 2020-01-01 13:15:30.999 +0800 CST// Set hour, minute, second and microsecondcarbon.Parse("2020-01-01").SetTimeMicro(13,14,15,999999).ToString()// 2020-01-01 13:14:15.999999 +0800 CSTcarbon.Parse("2020-01-01").SetTimeMicro(13,14,90,999999).ToString()// 2020-01-01 13:15:30.999999 +0800 CST// Set hour, minute, second and nanosecondcarbon.Parse("2020-01-01").SetTimeNano(13,14,15,999999999).ToString()// 2020-01-01 13:14:15.999999999 +0800 CSTcarbon.Parse("2020-01-01").SetTimeNano(13,14,90,999999999).ToString()// 2020-01-01 13:15:30.999999999 +0800 CST// Set yearcarbon.Parse("2020-02-29").SetYear(2021).ToDateString()// 2021-03-01// Set year without overflowing monthcarbon.Parse("2020-02-29").SetYearNoOverflow(2021).ToDateString()// 2021-02-28// Set monthcarbon.Parse("2020-01-31").SetMonth(2).ToDateString()// 2020-03-02// Set month without overflowing monthcarbon.Parse("2020-01-31").SetMonthNoOverflow(2).ToDateString()// 2020-02-29// Set start day of the weekcarbon.Parse("2020-08-02").SetWeekStartsAt(carbon.Sunday).Week()// 0carbon.Parse("2020-08-02").SetWeekStartsAt(carbon.Monday).Week()// 6// Set daycarbon.Parse("2019-08-05").SetDay(31).ToDateString()// 2020-08-31carbon.Parse("2020-02-01").SetDay(31).ToDateString()// 2020-03-02// Set hourcarbon.Parse("2020-08-05 13:14:15").SetHour(10).ToDateTimeString()// 2020-08-05 10:14:15carbon.Parse("2020-08-05 13:14:15").SetHour(24).ToDateTimeString()// 2020-08-06 00:14:15// Set minutecarbon.Parse("2020-08-05 13:14:15").SetMinute(10).ToDateTimeString()// 2020-08-05 13:10:15carbon.Parse("2020-08-05 13:14:15").SetMinute(60).ToDateTimeString()// 2020-08-05 14:00:15// Set secondcarbon.Parse("2020-08-05 13:14:15").SetSecond(10).ToDateTimeString()// 2020-08-05 13:14:10carbon.Parse("2020-08-05 13:14:15").SetSecond(60).ToDateTimeString()// 2020-08-05 13:15:00// Set millisecondcarbon.Parse("2020-08-05 13:14:15").SetMillisecond(100).Millisecond()// 100carbon.Parse("2020-08-05 13:14:15").SetMillisecond(999).Millisecond()// 999// Set microsecondcarbon.Parse("2020-08-05 13:14:15").SetMicrosecond(100000).Microsecond()// 100000carbon.Parse("2020-08-05 13:14:15").SetMicrosecond(999999).Microsecond()// 999999// Set nanosecondcarbon.Parse("2020-08-05 13:14:15").SetNanosecond(100000000).Nanosecond()// 100000000carbon.Parse("2020-08-05 13:14:15").SetNanosecond(999999999).Nanosecond()// 999999999
Getter
// Get total days of the yearcarbon.Parse("2019-08-05 13:14:15").DaysInYear()// 365carbon.Parse("2020-08-05 13:14:15").DaysInYear()// 366// Get total days of the monthcarbon.Parse("2020-02-01 13:14:15").DaysInMonth()// 29carbon.Parse("2020-04-01 13:14:15").DaysInMonth()// 30carbon.Parse("2020-08-01 13:14:15").DaysInMonth()// 31// Get day of the yearcarbon.Parse("2020-08-05 13:14:15").DayOfYear()// 218// Get week of the yearcarbon.Parse("2020-08-05 13:14:15").WeekOfYear()// 32// Get day of the monthcarbon.Parse("2020-08-05 13:14:15").DayOfMonth()// 5// Get week of the monthcarbon.Parse("2020-08-05 13:14:15").WeekOfMonth()// 1// Get day of the weekcarbon.Parse("2020-08-05 13:14:15").DayOfWeek()// 3// Get current year, month, day, hour, minute and secondcarbon.Parse("2020-08-05 13:14:15").DateTime()// 2020, 8, 5, 13, 14, 15// Get current year, month, day, hour, minute, second and millisecondcarbon.Parse("2020-08-05 13:14:15").DateTimeMilli()// 2020, 8, 5, 13, 14, 15, 999// Get current year, month, day, hour, minute, second and microsecondcarbon.Parse("2020-08-05 13:14:15").DateTimeMicro()// 2020, 8, 5, 13, 14, 15, 999999// Get current year, month, day, hour, minute, second and nanosecondcarbon.Parse("2020-08-05 13:14:15").DateTimeNano()// 2020, 8, 5, 13, 14, 15, 999999999// Get current year, month and daycarbon.Parse("2020-08-05 13:14:15.999999999").Date()// 2020, 8, 5// Get current year, month, day and millisecondcarbon.Parse("2020-08-05 13:14:15.999999999").DateMilli()// 2020, 8, 5, 999// Get current year, month, day and microsecondcarbon.Parse("2020-08-05 13:14:15.999999999").DateMicro()// 2020, 8, 5, 999999// Get current year, month, day and nanosecondcarbon.Parse("2020-08-05 13:14:15.999999999").DateNano()// 2020, 8, 5, 999999999// Get current hour, minute and secondcarbon.Parse("2020-08-05 13:14:15.999999999").Time()// 13, 14, 15// Get current hour, minute, second and millisecondcarbon.Parse("2020-08-05 13:14:15.999999999").TimeMilli()// 13, 14, 15, 999// Get current hour, minute, second and microsecondcarbon.Parse("2020-08-05 13:14:15.999999999").TimeMicro()// 13, 14, 15, 999999// Get current hour, minute, second and nanosecondcarbon.Parse("2020-08-05 13:14:15.999999999").TimeNano()// 13, 14, 15, 999999999// Get current centurycarbon.Parse("2020-08-05 13:14:15").Century()// 21// Get current decadecarbon.Parse("2019-08-05 13:14:15").Decade()// 10carbon.Parse("2021-08-05 13:14:15").Decade()// 20// Get current yearcarbon.Parse("2020-08-05 13:14:15").Year()// 2020// Get current quartercarbon.Parse("2020-08-05 13:14:15").Quarter()// 3// Get current monthcarbon.Parse("2020-08-05 13:14:15").Month()// 8// Get current week(start from 0)carbon.Parse("2020-08-02 13:14:15").Week()// 0carbon.Parse("2020-08-02").SetWeekStartsAt(carbon.Sunday).Week()// 0carbon.Parse("2020-08-02").SetWeekStartsAt(carbon.Monday).Week()// 6// Get current daycarbon.Parse("2020-08-05 13:14:15").Day()// 5// Get current hourcarbon.Parse("2020-08-05 13:14:15").Hour()// 13// Get current minutecarbon.Parse("2020-08-05 13:14:15").Minute()// 14// Get current secondcarbon.Parse("2020-08-05 13:14:15").Second()// 15// Get current millisecondcarbon.Parse("2020-08-05 13:14:15.999").Millisecond()// 999// Get current microsecondcarbon.Parse("2020-08-05 13:14:15.999").Microsecond()// 999000// Get current nanosecondcarbon.Parse("2020-08-05 13:14:15.999").Nanosecond()// 999000000// Get timestamp with secondcarbon.Parse("2020-08-05 13:14:15").Timestamp()// 1596604455// Get timestamp with millisecondcarbon.Parse("2020-08-05 13:14:15").TimestampMilli()// 1596604455000// Get timestamp with microsecondcarbon.Parse("2020-08-05 13:14:15").TimestampMicro()// 1596604455000000// Get timestamp with nanosecondcarbon.Parse("2020-08-05 13:14:15").TimestampNano()// 1596604455000000000// Get timezone namecarbon.SetTimezone(carbon.PRC).Timezone()// CSTcarbon.SetTimezone(carbon.Tokyo).Timezone()// JST// Get location namecarbon.SetTimezone(carbon.PRC).Location()// PRCcarbon.SetTimezone(carbon.Tokyo).Location()// Asia/Tokyo// Get offset seconds from the UTC timezonecarbon.SetTimezone(carbon.PRC).Offset()// 28800carbon.SetTimezone(carbon.Tokyo).Offset()// 32400// Get locale namecarbon.Now().SetLocale("en").Locale()// encarbon.Now().SetLocale("zh-CN").Locale()// zh-CN// Get constellation namecarbon.Now().Constellation()// Leocarbon.Now().SetLocale("en").Constellation()// Leocarbon.Now().SetLocale("zh-CN").Constellation()// 狮子座// Get season namecarbon.Now().Season()// Summercarbon.Now().SetLocale("en").Season()// Summercarbon.Now().SetLocale("zh-CN").Season()// 夏季// Get current agecarbon.Parse("2002-01-01 13:14:15").Age()// 17carbon.Parse("2002-12-31 13:14:15").Age()// 18
Output
// Output datetime format stringcarbon.Parse("2020-08-05 13:14:15").ToDateTimeString()// 2020-08-05 13:14:15// Output datetime with millisecond format stringcarbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMilliString()// 2020-08-05 13:14:15.999// Output datetime with microsecond format stringcarbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMicroString()// 2020-08-05 13:14:15.999999// Output datetime with nanosecond format stringcarbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeNanoString()// 2020-08-05 13:14:15.999999999// Output short datetime format stringcarbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeString()// 20200805131415// Output short datetime with millisecond format stringcarbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMilliString()// 20200805131415.999// Output short datetime with microsecond format stringcarbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMicroString()// 20200805131415.999999// Output short datetime with nanosecond format stringcarbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeNanoString()// 20200805131415.999999999// Output date format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToDateString()// 2020-08-05// Output date with millisecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToDateMilliString()// 2020-08-05.999// Output date with microsecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToDateMicroString()// 2020-08-05.999999// Output date with nanosecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToDateNanoString()// 2020-08-05.999999999// Output short date format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToShortDateString()// 20200805// Output short date with millisecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToShortDateMilliString()// 20200805.999// Output short date with microsecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToShortDateMicroString()// 20200805.999999// Output short date with nanosecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToShortDateNanoString()// 20200805.999999999// Output time format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToTimeString()// 13:14:15// Output time with millisecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToTimeMilliString()// 13:14:15.999// Output time with microsecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToTimeMicroString()// 13:14:15.999999// Output time with nanosecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToTimeNanoString()// 13:14:15.999999999// Output short time format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToShortTimeString()// 131415// Output short time with millisecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToShortTimeMilliString()// 131415.999// Output short time with microsecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToShortTimeMicroString()// 131415.999999// Output short time with nanosecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToShortTimeNanoString()// 131415.999999999// Output Ansic format stringcarbon.Parse("2020-08-05 13:14:15").ToAnsicString()// Wed Aug  5 13:14:15 2020// Output Atom format stringcarbon.Parse("2020-08-05 13:14:15").ToAtomString()// 2020-08-05T13:14:15+08:00// Output Unix date format stringcarbon.Parse("2020-08-05 13:14:15").ToUnixDateString()// Wed Aug  5 13:14:15 CST 2020// Output Ruby date format stringcarbon.Parse("2020-08-05 13:14:15").ToRubyDateString()// Wed Aug 05 13:14:15 +0800 2020// Output Kitchen format stringcarbon.Parse("2020-08-05 13:14:15").ToKitchenString()// 1:14PM// Output Cookie format stringcarbon.Parse("2020-08-05 13:14:15").ToCookieString()// Wednesday, 05-Aug-2020 13:14:15 CST// Output day, date and time format stringcarbon.Parse("2020-08-05 13:14:15").ToDayDateTimeString()// Wed, Aug 5, 2020 1:14 PM// Output RSS format stringcarbon.Parse("2020-08-05 13:14:15").ToRssString()// Wed, 05 Aug 2020 13:14:15 +0800// Output W3C format stringcarbon.Parse("2020-08-05 13:14:15").ToW3cString()// 2020-08-05T13:14:15+08:00// Output ISO8601 format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToIso8601String()// 2020-08-05T13:14:15+08:00// Output ISO8601 with millisecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToIso8601MilliString()// 2020-08-05T13:14:15.999+08:00// Output ISO8601 with microsecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToIso8601MicroString()// 2020-08-05T13:14:15.999999+08:00// Output ISO8601 with nanosecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToIso8601NanoString()// 2020-08-05T13:14:15.999999999+08:00// Output ISO8601Zulu format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToIso8601ZuluString()// 2020-08-05T13:14:15Z// Output ISO8601Zulu with millisecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToIso8601ZuluMilliString()// 2020-08-05T13:14:15.999Z// Output ISO8601Zulu with microsecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToIso8601ZuluMicroString()// 2020-08-05T13:14:15.999999Z// Output ISO8601Zulu with nanosecond format stringcarbon.Parse("2020-08-05 13:14:15.999999999").ToIso8601ZuluNanoString()// 2020-08-05T13:14:15.999999999Z// Output RFC822 format stringcarbon.Parse("2020-08-05 13:14:15").ToRfc822String()// 05 Aug 20 13:14 CST// Output RFC822Z format stringcarbon.Parse("2020-08-05 13:14:15").ToRfc822zString()// 05 Aug 20 13:14 +0800// Output RFC850 format stringcarbon.Parse("2020-08-05 13:14:15").ToRfc850String()// Wednesday, 05-Aug-20 13:14:15 CST// Output RFC1036 format stringcarbon.Parse("2020-08-05 13:14:15").ToRfc1036String()// Wed, 05 Aug 20 13:14:15 +0800// Output RFC1123 format stringcarbon.Parse("2020-08-05 13:14:15").ToRfc1123String()// Wed, 05 Aug 2020 13:14:15 CST// Output RFC1123Z format stringcarbon.Parse("2020-08-05 13:14:15").ToRfc1123zString()// Wed, 05 Aug 2020 13:14:15 +0800// Output RFC2822 format stringcarbon.Parse("2020-08-05 13:14:15").ToRfc2822String()// Wed, 05 Aug 2020 13:14:15 +0800// Output RFC7231 format stringcarbon.Parse("2020-08-05 13:14:15").ToRfc7231String()// Wed, 05 Aug 2020 13:14:15 GMT// Output RFC3339 format stringcarbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339String()// 2020-08-05T13:14:15+08:00// Output RFC3339 with millisecond format stringcarbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339MilliString()// 2020-08-05T13:14:15.999+08:00// Output RFC3339 with microsecond format stringcarbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339MicroString()// 2020-08-05T13:14:15.999999+08:00// Output RFC3339 with nanosecond format stringcarbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339NanoString()// 2020-08-05T13:14:15.999999999+08:00// Output datetime format stringfmt.Printf("%s",carbon.Parse("2020-08-05 13:14:15"))// 2020-08-05 13:14:15// Output "2006-01-02 15:04:05.999999999 -0700 MST" format stringcarbon.Parse("2020-08-05 13:14:15").ToString()// 2020-08-05 13:14:15.999999 +0800 CST// Output "Jan 2, 2006" format stringcarbon.Parse("2020-08-05 13:14:15").ToFormattedDateString()// Aug 5, 2020// Output "Mon, Jan 2, 2006" format stringcarbon.Parse("2020-08-05 13:14:15").ToFormattedDayDateString()// Wed, Aug 5, 2020// Output string by layoutcarbon.Parse("2020-08-05 13:14:15").Layout(carbon.ISO8601Layout)// 2020-08-05T13:14:15+08:00carbon.Parse("2020-08-05 13:14:15").Layout("20060102150405")// 20200805131415carbon.Parse("2020-08-05 13:14:15").Layout("2006年01月02日 15时04分05秒")// 2020年08月05日 13时14分15秒carbon.Parse("2020-08-05 13:14:15").Layout("It is 2006-01-02 15:04:05")// It is 2020-08-05 13:14:15// Output string by formatcarbon.Parse("2020-08-05 13:14:15").Format("YmdHis")// 20200805131415carbon.Parse("2020-08-05 13:14:15").Format("Y年m月d日 H时i分s秒")// 2020年08月05日 13时14分15秒carbon.Parse("2020-08-05 13:14:15").Format("l jS\\o\\f F Y h:i:s A")// Wednesday 5th of August 2020 01:14:15 PMcarbon.Parse("2020-08-05 13:14:15").Format("\\I\\t\\i\\s Y-m-d H:i:s")// It is 2020-08-05 13:14:15

For more supported format signs, please see theFormat sign table

Constellation
// Get constellation namecarbon.Parse("2020-08-05 13:14:15").Constellation()// Leo// Whether is Ariescarbon.Parse("2020-08-05 13:14:15").IsAries()// false// Whether is Tauruscarbon.Parse("2020-08-05 13:14:15").IsTaurus()// false// Whether is Geminicarbon.Parse("2020-08-05 13:14:15").IsGemini()// false// Whether is Cancercarbon.Parse("2020-08-05 13:14:15").IsCancer()// false// Whether is Leocarbon.Parse("2020-08-05 13:14:15").IsLeo()// true// Whether is Virgocarbon.Parse("2020-08-05 13:14:15").IsVirgo()// false// Whether is Libracarbon.Parse("2020-08-05 13:14:15").IsLibra()// false// Whether is Scorpiocarbon.Parse("2020-08-05 13:14:15").IsScorpio()// false// Whether is Sagittariuscarbon.Parse("2020-08-05 13:14:15").IsSagittarius()// false// Whether is Capricorncarbon.Parse("2020-08-05 13:14:15").IsCapricorn()// false// Whether is Aquariuscarbon.Parse("2020-08-05 13:14:15").IsAquarius()// false// Whether is Piscescarbon.Parse("2020-08-05 13:14:15").IsPisces()// false
Season

According to the meteorological division method, March to May is spring, June to August is summer, September to November is autumn, and December to February is winter

// Get season namecarbon.Parse("2020-08-05 13:14:15").Season()// Summer// Start of the seasoncarbon.Parse("2020-08-05 13:14:15").StartOfSeason().ToDateTimeString()// 2020-06-01 00:00:00// End of the seasoncarbon.Parse("2020-08-05 13:14:15").EndOfSeason().ToDateTimeString()// 2020-08-31 23:59:59// Whether is springcarbon.Parse("2020-08-05 13:14:15").IsSpring()// false// Whether is summercarbon.Parse("2020-08-05 13:14:15").IsSummer()// true// Whether is autumncarbon.Parse("2020-08-05 13:14:15").IsAutumn()// false// Whether is wintercarbon.Parse("2020-08-05 13:14:15").IsWinter()// false
JSON
typePersonstruct {Namestring`json:"name"`Ageint`json:"age"`Birthday0 carbon.Carbon`json:"birthday0"`Birthday1 carbon.DateTime`json:"birthday1"`Birthday2 carbon.DateTimeMilli`json:"birthday2"`Birthday3 carbon.DateTimeMicro`json:"birthday3"`Birthday4 carbon.DateTimeNano`json:"birthday4"`GraduatedAt1 carbon.Date`json:"graduated_at1"`GraduatedAt2 carbon.DateMilli`json:"graduated_at2"`GraduatedAt3 carbon.DateMicro`json:"graduated_at3"`GraduatedAt4 carbon.DateNano`json:"graduated_at4"`OperatedAt1 carbon.Time`json:"operated_at1"`OperatedAt2 carbon.TimeMilli`json:"operated_at2"`OperatedAt3 carbon.TimeMicro`json:"operated_at3"`OperatedAt4 carbon.TimeNano`json:"operated_at4"`CreatedAt1 carbon.Timestamp`json:"created_at1"`CreatedAt2 carbon.TimestampMilli`json:"created_at2"`CreatedAt3 carbon.TimestampMicro`json:"created_at3"`CreatedAt4 carbon.TimestampNano`json:"created_at4"`}person:=Person {Name:"gouguoyin",Age:18,Birthday0:carbon.Now().SubYears(18),Birthday1:carbon.NewDateTime(carbon.Now().SubYears(18)),Birthday2:carbon.NewDateTimeMilli(carbon.Now().SubYears(18)),Birthday3:carbon.NewDateTimeMicro(carbon.Now().SubYears(18)),Birthday4:carbon.NewDateTimeNano(carbon.Now().SubYears(18)),GraduatedAt1:carbon.NewDate(carbon.Now()),GraduatedAt2:carbon.NewDateMilli(carbon.Now()),GraduatedAt3:carbon.NewDateMicro(carbon.Now()),GraduatedAt4:carbon.NewDateNano(carbon.Now()),OperatedAt1:carbon.NewTime(carbon.Now()),OperatedAt2:carbon.NewTimeMilli(carbon.Now()),OperatedAt3:carbon.NewTimeMicro(carbon.Now()),OperatedAt4:carbon.NewTimeNano(carbon.Now()),CreatedAt1:carbon.NewTimestamp(carbon.Now()),CreatedAt2:carbon.NewTimestampMilli(carbon.Now()),CreatedAt3:carbon.NewTimestampMicro(carbon.Now()),CreatedAt4:carbon.NewTimestampNano(carbon.Now()),}data,err:=json.Marshal(&person)iferr!=nil {// Error handle...log.Fatal(err)}fmt.Printf("%s",data)// Output{"name":"gouguoyin","age":18,"birthday0":"2003-07-16 13:14:15","birthday1":"2003-07-16 13:14:15","birthday2":"2003-07-16 13:14:15.999","birthday3":"2003-07-16 13:14:15.999999","birthday4":"2003-07-16 13:14:15.999999999","graduated_at1":"2020-08-05","graduated_at2":"2020-08-05.999","graduated_at3":"2020-08-05.999999","graduated_at4":"2020-08-05.999999999","operated_at1":"13:14:15","operated_at2":"13:14:15.999","operated_at3":"13:14:15.999999","operated_at4":"13:14:15.999999999","created_at1":1596604455,"created_at2":1596604455999,"created_at3":1596604455999999,"created_at4":1596604455999999999}err:=json.Unmarshal([]byte(data),&person)iferr!=nil {// Error handle...log.Fatal(err)}person.Birthday0.String()// 2003-07-16 13:14:15person.Birthday1.String()// 2003-07-16 13:14:15person.Birthday2.String()// 2003-07-16 13:14:15.999person.Birthday3.String()// 2003-07-16 13:14:15.999999person.Birthday4.String()// 2003-07-16 13:14:15.999999999person.GraduatedAt1.String()// 2020-08-05person.GraduatedAt2.String()// 2020-08-05.999person.GraduatedAt3.String()// 2020-08-05.999999person.GraduatedAt4.String()// 2020-08-05.999999999person.OperatedAt1.String()// 13:14:15person.OperatedAt2.String()// 13:14:15.999person.OperatedAt3.String()// 13:14:15.999999person.OperatedAt4.String()// 13:14:15.999999999person.CreatedAt1.String()// "1596604455"person.CreatedAt2.String()// "1596604455999"person.CreatedAt3.String()// "1596604455999999"person.CreatedAt4.String()// "1596604455999999999"person.CreatedAt1.Int64()// 1596604455person.CreatedAt2.Int64()// 1596604455999person.CreatedAt3.Int64()// 1596604455999999person.CreatedAt4.Int64()// 1596604455999999999
Calendar

The following calendars are supported

i18n

The following languages are supported

The following methods are supported

  • Constellation():get constellation name, likeAries
  • Season():get season name, likeSpring
  • DiffForHumans():get the difference with human-readable format string, like1 year from now
  • ToMonthString():output month format string, likeJanuary
  • ToShortMonthString():output short month format string, likeJan
  • ToWeekString():output week format string, likeSunday
  • ToShortWeekString():output short week format string, likeSun
Set locale
lang:=carbon.NewLanguage()lang.SetLocale("en")c:=carbon.SetLanguage(lang)ifc.Error!=nil {// Error handle...log.Fatal(c.Error)}c.Now().AddHours(1).DiffForHumans()// 1 hour from nowc.Now().AddHours(1).ToMonthString()// Augustc.Now().AddHours(1).ToShortMonthString()// Augc.Now().AddHours(1).ToWeekString()// Wednesdayc.Now().AddHours(1).ToShortWeekString()// Wedc.Now().AddHours(1).Constellation()// Leoc.Now().AddHours(1).Season()// Summer
Reset some resources(the rests still translate from the given locale)
lang:=carbon.NewLanguage()resources:=map[string]string {"hour":"%dh",}lang.SetLocale("en").SetResources(resources)c:=carbon.SetLanguage(lang)ifc.Error!=nil {// Error handle...log.Fatal(c.Error)}c.Now().AddYears(1).DiffForHumans()// 1 year from nowc.Now().AddHours(1).DiffForHumans()// 1h from nowc.Now().ToMonthString()// Augustc.Now().ToShortMonthString()// Augc.Now().ToWeekString()// Tuesdayc.Now().ToShortWeekString()// Tuec.Now().Constellation()// Leoc.Now().Season()// Summer
Reset all resources
lang:=carbon.NewLanguage()resources:=map[string]string {"months":"january|february|march|april|may|june|july|august|september|october|november|december","short_months":"jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec","weeks":"sunday|monday|tuesday|wednesday|thursday|friday|saturday","short_weeks":"sun|mon|tue|wed|thu|fri|sat","seasons":"spring|summer|autumn|winter","constellations":"aries|taurus|gemini|cancer|leo|virgo|libra|scorpio|sagittarius|capricornus|aquarius|pisce","year":"1 yr|%d yrs","month":"1 mo|%d mos","week":"%dw","day":"%dd","hour":"%dh","minute":"%dm","second":"%ds","now":"just now","ago":"%s ago","from_now":"in %s","before":"%s before","after":"%s after",}lang.SetResources(resources)c:=carbon.SetLanguage(lang)c.Now().AddYears(1).DiffForHumans()// in 1 yrc.Now().AddHours(1).DiffForHumans()// in 1hc.Now().ToMonthString()// augustc.Now().ToShortMonthString()// augc.Now().ToWeekString()// tuesdayc.Now().ToShortWeekString()// tuec.Now().Constellation()// leoc.Now().Season()// summer
Testing
c:=carbon.SetTimezone(carbon.UTC)c.Now().ToDateString()// 2023-12-27c.Now().IsSetTestNow()// falsec.SetTestNow(carbon.Parse("2020-08-05"))c.Now().ToDateString()// 2020-08-05c.Now().IsSetTestNow()// truec.UnSetTestNow()c.Now().ToDateString()// 2023-12-27c.Now().IsSetTestNow()// false
Error

If more than one error occurs, only the first error is returned

c:=carbon.SetTimezone("xxx").Parse("2020-08-05")ifc.Error!=nil {// Error handle...log.Fatal(c.Error)}// Outputinvalidtimezone"xxx",pleaseseethefile"$GOROOT/lib/time/zoneinfo.zip"forallvalidtimezones

Appendix

signdesclengthrangeexample
dDay of the month, padded to 2201-3102
DDay of the week, as an abbreviate localized string3Mon-SunMon
jDay of the month, no padding-1-312
SEnglish ordinal suffix for the day of the month, 2 characters. Eg: st, nd, rd or th. Works well with j2st/nd/rd/thth
lDay of the week, as an unabbreviated localized string-Monday-SundayMonday
FMonth as an unabbreviated localized string-January-DecemberJanuary
mMonth, padded to 2201-1201
MMonth as an abbreviated localized string3Jan-DecJan
nMonth, no padding-1-121
YFour-digit year40000-99992006
yTwo-digit year200-9906
aLowercase morning or afternoon sign2am/pmpm
AUppercase morning or afternoon sign2AM/PMPM
gHour in 12-hour format, no padding-1-123
GHour in 24-hour format, no padding-0-2315
hHour in 12-hour format, padded to 2200-1103
HHour in 24-hour format, padded to 2200-2315
iMinute, padded to 2201-5904
sSecond, padded to 2201-5905
ODifference to Greenwich time (GMT) without colon between hours and minutes---0700
PDifference to Greenwich time (GMT) with colon between hours and minutes---07:00
TAbbreviated timezone--MST
Wweek of the year, padded to 2201-5201
Nday of the week, padded to 2201-0702
LWhether it's a leap year10-10
UUnix timestamp with seconds--1596604455
VUnix timestamp with millisecond--1596604455666
XUnix timestamp with microsecond--1596604455666666
ZUnix timestamp with nanoseconds--1596604455666666666
vMillisecond-1-999999
uMicrosecond-1-999999999999
xNanosecond-1-999999999999999999
wDay of the week10-61
tTotal days of the month228-3131
zDay of the year-1-3652
eLocation--America/New_York
QQuarter11-41
CCentury-0-9921

FAQ

1、What is the difference between v1 and v2?

There is no difference between v1 and v2 of the API, but the implementation of the translation resource files inlanguage.go is different. The v1 is implemented by the third-party extension librarypackr, and the v2 is implemented by the standard libraryembed aftergolang1.16. If your golang version is1.16+, the v2 is recommended, otherwise, the v1 is required.

References

Contributors

Thanks to all of the following who contributed toCarbon:

Sponsors

Carbon is a non-commercial open source project. If you want to supportCarbon, you canbuy a cup of coffee for developer.

Thanks

Carbon had been being developed with GoLand under the free JetBrains Open Source license, I would like to express mythanks here.

JetBrains


[8]ページ先頭

©2009-2025 Movatter.jp