- Notifications
You must be signed in to change notification settings - Fork251
A simple, semantic and developer-friendly time package for golang
License
dromara/carbon
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A simple, semantic and developer-friendly time package forgolang
, has been includedbyawesome-go
// 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
Assuming the current time is 2020-08-05 13:14:15.999999999 +0800 CST
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 as
main.go
// Convert standard Time.time to Carboncarbon.NewCarbon(time.Now())orcarbon.CreateFromStdTime(time.Now())// Convert Carbon to standard Time.timecarbon.Now().StdTime()
// 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 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
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
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
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
// 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
// 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 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
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
// 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
// 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
// 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 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
// 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
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
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
The following calendars are supported
The following languages are supported
- Simplified Chinese(zh-CN):translatedbygouguoyin
- Traditional Chinese(zh-TW):translatedbygouguoyin
- English(en):translatedbygouguoyin
- Japanese(jp):translatedbygouguoyin
- Korean(kr):translated bynannul
- German(de):translated bybenzammour
- Spanish(es):translated byhgisinger
- Turkish(tr): translated byemresenyuva
- Portuguese(pt): translated byfelipear89
- Russian(ru): translated byzemlyak
- Ukrainian(uk): translated byopen-git
- Romanian(ro): translated byDrOctavius
- Indonesian(id): translated byjustpoypoy
- Italian(it): translated bynicoloHevelop
- Bahasa Malaysia(ms-MY): translatedbyhollowaykeanho
- French(fr): translatedbyhollowaykeanho
- Thailand(th): translated byizcream
- Swedish(se): translated byjwanglof
- Farsi(fa): translated byerfanMomeniii
- Dutch(nl): translated byRemcoE33
- VietNamese(vi): translated byculy247
- Hindi(hi): translated bychauhan17nitin
- Polish(pl): translated bygouguoyin
- Bulgarian(bg): translated byyuksbg
- Arabic(ar): translated byzumoshi
- Hungarian(hu): translated bykenlas
- Dansk(dk): translated byMunk91
- Norwegian(nb): translated bybendikrb
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
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
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
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
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
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
sign | desc | length | range | example |
---|---|---|---|---|
d | Day of the month, padded to 2 | 2 | 01-31 | 02 |
D | Day of the week, as an abbreviate localized string | 3 | Mon-Sun | Mon |
j | Day of the month, no padding | - | 1-31 | 2 |
S | English ordinal suffix for the day of the month, 2 characters. Eg: st, nd, rd or th. Works well with j | 2 | st/nd/rd/th | th |
l | Day of the week, as an unabbreviated localized string | - | Monday-Sunday | Monday |
F | Month as an unabbreviated localized string | - | January-December | January |
m | Month, padded to 2 | 2 | 01-12 | 01 |
M | Month as an abbreviated localized string | 3 | Jan-Dec | Jan |
n | Month, no padding | - | 1-12 | 1 |
Y | Four-digit year | 4 | 0000-9999 | 2006 |
y | Two-digit year | 2 | 00-99 | 06 |
a | Lowercase morning or afternoon sign | 2 | am/pm | pm |
A | Uppercase morning or afternoon sign | 2 | AM/PM | PM |
g | Hour in 12-hour format, no padding | - | 1-12 | 3 |
G | Hour in 24-hour format, no padding | - | 0-23 | 15 |
h | Hour in 12-hour format, padded to 2 | 2 | 00-11 | 03 |
H | Hour in 24-hour format, padded to 2 | 2 | 00-23 | 15 |
i | Minute, padded to 2 | 2 | 01-59 | 04 |
s | Second, padded to 2 | 2 | 01-59 | 05 |
O | Difference to Greenwich time (GMT) without colon between hours and minutes | - | - | -0700 |
P | Difference to Greenwich time (GMT) with colon between hours and minutes | - | - | -07:00 |
T | Abbreviated timezone | - | - | MST |
W | week of the year, padded to 2 | 2 | 01-52 | 01 |
N | day of the week, padded to 2 | 2 | 01-07 | 02 |
L | Whether it's a leap year | 1 | 0-1 | 0 |
U | Unix timestamp with seconds | - | - | 1596604455 |
V | Unix timestamp with millisecond | - | - | 1596604455666 |
X | Unix timestamp with microsecond | - | - | 1596604455666666 |
Z | Unix timestamp with nanoseconds | - | - | 1596604455666666666 |
v | Millisecond | - | 1-999 | 999 |
u | Microsecond | - | 1-999999 | 999999 |
x | Nanosecond | - | 1-999999999 | 999999999 |
w | Day of the week | 1 | 0-6 | 1 |
t | Total days of the month | 2 | 28-31 | 31 |
z | Day of the year | - | 1-365 | 2 |
e | Location | - | - | America/New_York |
Q | Quarter | 1 | 1-4 | 1 |
C | Century | - | 0-99 | 21 |
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 in
language.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.
- briannesbitt/carbon
- nodatime/nodatime
- jinzhu/now
- goframe/gtime
- jodaOrg/joda-time
- arrow-py/arrow
- moment/moment
- iamkun/dayjs
Thanks to all of the following who contributed toCarbon
:
Carbon
is a non-commercial open source project. If you want to supportCarbon
, you canbuy a cup of coffee for developer.
Carbon
had been being developed with GoLand under the free JetBrains Open Source license, I would like to express mythanks here.
About
A simple, semantic and developer-friendly time package for golang