{"id":17644317,"url":"https://github.com/dromara/carbon","last_synced_at":"2025-05-13T18:08:33.517Z","repository":{"id":37409861,"uuid":"293477261","full_name":"dromara/carbon","owner":"dromara","description":"A simple, semantic and developer-friendly  time  package for golang","archived":false,"fork":false,"pushed_at":"2025-05-11T04:40:42.000Z","size":3542,"stargazers_count":5035,"open_issues_count":4,"forks_count":255,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-05-11T05:21:59.627Z","etag":null,"topics":["calendar","carbon","date","datetime","gorm","i18n","jalaali","julian","lunar","persian","time","timezone"],"latest_commit_sha":null,"homepage":"https://pkg.go.dev/github.com/dromara/carbon/v2","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dromara.png","metadata":{"files":{"readme":"README.cn.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":"go-carbon","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://www.gouguoyin.com/zanzhu.html"]}},"created_at":"2020-09-07T09:07:35.000Z","updated_at":"2025-05-11T04:40:45.000Z","dependencies_parsed_at":"2023-09-26T17:05:45.474Z","dependency_job_id":"d7af2236-3a17-4d31-bc67-65b732a7870f","html_url":"https://github.com/dromara/carbon","commit_stats":{"total_commits":1304,"total_committers":44,"mean_commits":"29.636363636363637","dds":"0.10429447852760731","last_synced_commit":"21ced834b018360aedeea17e91116d0b34c0a1cb"},"previous_names":["dromara/carbon","golang-module/carbon"],"tags_count":107,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dromara%2Fcarbon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dromara%2Fcarbon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dromara%2Fcarbon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dromara%2Fcarbon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dromara","download_url":"https://codeload.github.com/dromara/carbon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254000849,"owners_count":21997441,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calendar","carbon","date","datetime","gorm","i18n","jalaali","julian","lunar","persian","time","timezone"],"created_at":"2024-10-23T10:01:24.684Z","updated_at":"2025-05-13T18:08:33.503Z","avatar_url":"https://github.com/dromara.png","language":"Go","readme":"# Carbon  #\n\n[![Carbon Release](https://img.shields.io/github/release/dromara/carbon.svg)](https://github.com/dromara/carbon/releases)\n[![Go Test](https://github.com/dromara/carbon/actions/workflows/test.yml/badge.svg)](https://github.com/dromara/carbon/actions)\n[![Go Report Card](https://goreportcard.com/badge/github.com/dromara/carbon/v2)](https://goreportcard.com/report/github.com/dromara/carbon/v2)\n[![Go Coverage](https://codecov.io/gh/dromara/carbon/branch/master/graph/badge.svg)](https://codecov.io/gh/dromara/carbon)\n[![Carbon Doc](https://img.shields.io/badge/go.dev-reference-brightgreen?logo=go\u0026logoColor=white\u0026style=flat)](https://pkg.go.dev/github.com/dromara/carbon/v2)\n[![License](https://img.shields.io/github/license/dromara/carbon)](https://github.com/dromara/carbon/blob/master/LICENSE)\n\n简体中文 | [English](README.md) | [日本語](README.jp.md)\n\n#### 项目简介\n\n一个轻量级、语义化、对开发者友好的 `golang` 时间处理库，不依赖于 `任何` 第三方库， `100%` 单元测试覆盖率，已被 [awesome-go](https://github.com/yinggaozhen/awesome-go-cn#日期和时间 \"awesome-go-cn\") 收录，并获得\n`gitee` 2024 年最有价值项目（`GVP`）和 `gitcode` 2024 年度开源摘星计划 (`G-Star`) 项目\n\n\u003cimg src=\"https://gitee.com/dromara/carbon/raw/master/gvp.jpg\" width=\"100%\" alt=\"gvp\"/\u003e\n\u003cimg src=\"https://gitee.com/dromara/carbon/raw/master/gstar.jpg\" width=\"100%\" alt=\"g-star\"/\u003e\n\n#### 仓库地址\n\n[github.com/dromara/carbon](https://github.com/dromara/carbon \"github.com/dromara/carbon\")\n\n[gitee.com/dromara/carbon](https://gitee.com/dromara/carbon \"gitee.com/dromara/carbon\")\n\n[gitcode.com/dromara/carbon](https://gitcode.com/dromara/carbon \"gitcode.com/dromara/carbon\")\n\n#### 安装使用\n\n##### go version \u003e= 1.21\n\n```go\n// 使用 github 库\ngo get -u github.com/dromara/carbon/v2\nimport \"github.com/dromara/carbon/v2\"\n\n// 使用 gitee 库\ngo get -u gitee.com/dromara/carbon/v2\nimport \"gitee.com/dromara/carbon/v2\"\n\n// 使用 gitcode 库\ngo get -u gitcode.com/dromara/carbon/v2\nimport \"gitcode.com/dromara/carbon/v2\"\n```\n\n`Carbon` 已经捐赠给了 [dromara](https://dromara.org/ \"dromara\") 开源组织，仓库地址发生了改变，如果之前用的路径是\n`golang-module/carbon`，请在 `go.mod` 里将原地址更换为新路径，或执行如下命令\n\n```go\ngo mod edit -replace github.com/golang-module/carbon/v2 = github.com/dromara/carbon/v2\n```\n\n#### 用法示例\n\n\u003e 默认时区是 `UTC`, 语言环境是 `英语`，一周开始日期是 `周一`，周末是 `周六`和 `周日`。\n\u003e 假设当前时间为 `2020-08-05 13:14:15.999999999 +0800 CST`\n\n##### 设置全局默认值\n\n```go\ncarbon.SetLayout(carbon.DateTimeLayout)\ncarbon.SetTimezone(carbon.PRC)\ncarbon.SetLocale(\"zh-CN\")\ncarbon.SetWeekStartsAt(carbon.Monday)\ncarbon.SetWeekendDays([]carbon.Weekday{carbon.Saturday, carbon.Sunday,})\n\n或\n\ncarbon.SetDefault(carbon.Default{\n  Layout: carbon.DateTimeLayout,\n  Timezone: carbon.PRC,\n  Locale: \"zh-CN\",\n  WeekStartsAt: carbon.Monday,\n  WeekendDays: []carbon.Weekday{carbon.Saturday, carbon.Sunday,},\n})\n```\n\n##### `Carbon` 和 `time.Time` 互转\n\n```go\n// 将标准 time.Time 转换成 Carbon\ncarbon.NewCarbon(time.Now())\n// 将 Carbon 转换成标准 time.Time\ncarbon.Now().StdTime()\n\n或\n\n// 将标准 time.Time 转换成 Carbon\nloc, _ := time.LoadLocation(carbon.PRC)\ncarbon.CreateFromStdTime(time.Now().In(loc))\n// 将 Carbon 转换成标准 time.Time\ncarbon.Now(carbon.PRC).StdTime()\n```\n\n##### 昨天、今天、明天\n\n```go\n// 今天此刻\nfmt.Printf(\"%s\", carbon.Now()) // 2020-08-05 13:14:15\ncarbon.Now().String() // 2020-08-05 13:14:15\ncarbon.Now().ToString() // 2020-08-05 13:14:15.999999999 +0800 CST\ncarbon.Now().ToDateTimeString() // 2020-08-05 13:14:15\n// 今天日期\ncarbon.Now().ToDateString() // 2020-08-05\n// 今天时间\ncarbon.Now().ToTimeString() // 13:14:15\n// 指定时区的今天此刻\ncarbon.Now(carbon.NewYork).ToDateTimeString() // 2020-08-05 14:14:15\n// 今天秒精度时间戳\ncarbon.Now().Timestamp() // 1596604455\n// 今天毫秒精度时间戳\ncarbon.Now().TimestampMilli() // 1596604455999\n// 今天微秒精度时间戳\ncarbon.Now().TimestampMicro() // 1596604455999999\n// 今天纳秒精度时间戳\ncarbon.Now().TimestampNano() // 1596604455999999999\n\n// 昨天此刻\nfmt.Printf(\"%s\", carbon.Yesterday()) // 2020-08-04 13:14:15\ncarbon.Yesterday().String() // 2020-08-04 13:14:15\ncarbon.Yesterday().ToString() // 2020-08-04 13:14:15.999999999 +0800 CST\ncarbon.Yesterday().ToDateTimeString() // 2020-08-04 13:14:15\n// 昨天日期\ncarbon.Yesterday().ToDateString() // 2020-08-04\n// 昨天时间\ncarbon.Yesterday().ToTimeString() // 13:14:15\n// 指定时区的昨天此刻\ncarbon.Yesterday(carbon.NewYork).ToDateTimeString() // 2020-08-04 14:14:15\n// 昨天秒精度时间戳\ncarbon.Yesterday().Timestamp() // 1596518055\n// 昨天毫秒精度时间戳\ncarbon.Yesterday().TimestampMilli() // 1596518055999\n// 昨天微秒精度时间戳\ncarbon.Yesterday().TimestampMicro() // 1596518055999999\n// 昨天纳秒精度时间戳\ncarbon.Yesterday().TimestampNano() // 1596518055999999999\n\n// 明天此刻\nfmt.Printf(\"%s\", carbon.Tomorrow()) // 2020-08-06 13:14:15\ncarbon.Tomorrow().String() // 2020-08-06 13:14:15\ncarbon.Tomorrow().ToString() // 2020-08-06 13:14:15.999999999 +0800 CST\ncarbon.Tomorrow().ToDateTimeString() // 2020-08-06 13:14:15\n// 明天日期\ncarbon.Tomorrow().ToDateString() // 2020-08-06\n// 明天时间\ncarbon.Tomorrow().ToTimeString() // 13:14:15\n// 指定时区的明天此刻\ncarbon.Tomorrow(carbon.NewYork).ToDateTimeString() // 2020-08-06 14:14:15\n// 明天秒精度时间戳\ncarbon.Tomorrow().Timestamp() // 1596690855\n// 明天毫秒精度时间戳\ncarbon.Tomorrow().TimestampMilli() //1596690855999\n// 明天微秒精度时间戳\ncarbon.Tomorrow().TimestampMicro() // 1596690855999999\n// 明天纳秒精度时间戳\ncarbon.Tomorrow().TimestampNano() // 1596690855999999999\n```\n\n##### 创建 `Carbon` 实例\n\n```go\n// 从秒精度时间戳创建 Carbon 实例\ncarbon.CreateFromTimestamp(-1).ToString() // 1970-01-01 07:59:59 +0800 CST\ncarbon.CreateFromTimestamp(0).ToString() // 1970-01-01 08:00:00 +0800 CST\ncarbon.CreateFromTimestamp(1).ToString() // 1970-01-01 08:00:01 +0800 CST\ncarbon.CreateFromTimestamp(1596604455).ToString() // 2020-08-05 13:14:15 +0800 CST\n// 从毫秒精度时间戳创建 Carbon 实例\ncarbon.CreateFromTimestampMilli(1596604455999).ToString() // 2020-08-05 13:14:15.999 +0800 CST\n// 从微秒精度时间戳创建 Carbon 实例\ncarbon.CreateFromTimestampMicro(1596604455999999).ToString() // 2020-08-05 13:14:15.999999 +0800 CST\n// 从纳秒精度时间戳创建 Carbon 实例\ncarbon.CreateFromTimestampNano(1596604455999999999).ToString() // 2020-08-05 13:14:15.999999999 +0800 CST\n\n// 从年、月、日、时、分、秒创建 Carbon 实例\ncarbon.CreateFromDateTime(2020, 8, 5, 13, 14, 15).ToString() // 2020-08-05 13:14:15 +0800 CST\n// 从年、月、日、时、分、秒、毫秒创建 Carbon 实例\ncarbon.CreateFromDateTimeMilli(2020, 8, 5, 13, 14, 15, 999).ToString() // 2020-08-05 13:14:15.999 +0800 CST\n// 从年、月、日、时、分、秒、微秒创建 Carbon 实例\ncarbon.CreateFromDateTimeMicro(2020, 8, 5, 13, 14, 15, 999999).ToString() // 2020-08-05 13:14:15.999999 +0800 CST\n// 从年、月、日、时、分、秒、纳秒创建 Carbon 实例\ncarbon.CreateFromDateTimeNano(2020, 8, 5, 13, 14, 15, 999999999).ToString() // 2020-08-05 13:14:15.999999999 +0800 CST\n\n// 从年、月、日创建 Carbon 实例\ncarbon.CreateFromDate(2020, 8, 5).ToString() // 2020-08-05 00:00:00 +0800 CST\n// 从年、月、日、毫秒创建 Carbon 实例\ncarbon.CreateFromDateMilli(2020, 8, 5, 999).ToString() // 2020-08-05 00:00:00.999 +0800 CST\n// 从年、月、日、微秒创建 Carbon 实例\ncarbon.CreateFromDateMicro(2020, 8, 5, 999999).ToString() // 2020-08-05 00:00:00.999999 +0800 CST\n// 从年、月、日、纳秒创建 Carbon 实例\ncarbon.CreateFromDateNano(2020, 8, 5, 999999999).ToString() // 2020-08-05 00:00:00.999999999 +0800 CST\n\n// 从时、分、秒创建 Carbon 实例(年月日默认为当前年月日)\ncarbon.CreateFromTime(13, 14, 15).ToString() // 2020-08-05 13:14:15 +0800 CST\n// 从时、分、秒、毫秒创建 Carbon 实例(年月日默认为当前年月日)\ncarbon.CreateFromTimeMilli(13, 14, 15, 999).ToString() // 2020-08-05 13:14:15.999 +0800 CST\n// 从时、分、秒、微秒创建 Carbon 实例(年月日默认为当前年月日)\ncarbon.CreateFromTimeMicro(13, 14, 15, 999999).ToString() // 2020-08-05 13:14:15.999999 +0800 CST\n// 从时、分、秒、纳秒创建 Carbon 实例(年月日默认为当前年月日)\ncarbon.CreateFromTimeNano(13, 14, 15, 999999999).ToString() // 2020-08-05 13:14:15.999999999 +0800 CST\n```\n\n##### 将 `时间字符串` 解析成 `Carbon` 实例\n\n```go\ncarbon.Parse(\"\").ToDateTimeString() // 空字符串\ncarbon.Parse(\"0\").ToDateTimeString() // 空字符串\ncarbon.Parse(\"xxx\").ToDateTimeString() // 空字符串\ncarbon.Parse(\"00:00:00\").ToDateTimeString() // 空字符串\ncarbon.Parse(\"0000-00-00\").ToDateTimeString() // 空字符串\ncarbon.Parse(\"0000-00-00 00:00:00\").ToDateTimeString() // 空字符串\n\ncarbon.Parse(\"now\").ToString() // 2020-08-05 13:14:15 +0800 CST\ncarbon.Parse(\"yesterday\").ToString() // 2020-08-04 13:14:15 +0800 CST\ncarbon.Parse(\"tomorrow\").ToString() // 2020-08-06 13:14:15 +0800 CST\n\ncarbon.Parse(\"2020\").ToString() // 2020-01-01 00:00:00 +0800 CST\ncarbon.Parse(\"2020-8\").ToString() // 2020-08-01 00:00:00 +0800 CST\ncarbon.Parse(\"2020-08\").ToString() // 2020-08-01 00:00:00 +0800 CST\ncarbon.Parse(\"2020-8-5\").ToString() // 2020-08-05 00:00:00 +0800 CST\ncarbon.Parse(\"2020-8-05\").ToString() // 2020-08-05 00:00:00 +0800 CST\ncarbon.Parse(\"2020-08-05\").ToString() // 2020-08-05 00:00:00 +0800 CST\ncarbon.Parse(\"2020-08-05.999\").ToString() // 2020-08-05 00:00:00.999 +0800 CST\ncarbon.Parse(\"2020-08-05.999999\").ToString() // 2020-08-05 00:00:00.999999 +0800 CST\ncarbon.Parse(\"2020-08-05.999999999\").ToString() // 2020-08-05 00:00:00.999999999 +0800 CST\n\ncarbon.Parse(\"2020-8-5 13:14:15\").ToString() // 2020-08-05 13:14:15 +0800 CST\ncarbon.Parse(\"2020-8-05 13:14:15\").ToString() // 2020-08-05 13:14:15 +0800 CST\ncarbon.Parse(\"2020-08-5 13:14:15\").ToString() // 2020-08-05 13:14:15 +0800 CST\ncarbon.Parse(\"2020-08-05 13:14:15\").ToString() // 2020-08-05 13:14:15 +0800 CST\ncarbon.Parse(\"2020-08-05 13:14:15.999\").ToString() // 2020-08-05 13:14:15.999 +0800 CST\ncarbon.Parse(\"2020-08-05 13:14:15.999999\").ToString() // 2020-08-05 13:14:15.999999 +0800 CST\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToString() // 2020-08-05 13:14:15.999999999 +0800 CST\n\ncarbon.Parse(\"2020-8-5T13:14:15+08:00\").ToString() // 2020-08-05 13:14:15 +0800 CST\ncarbon.Parse(\"2020-8-05T13:14:15+08:00\").ToString() // 2020-08-05 13:14:15 +0800 CST\ncarbon.Parse(\"2020-08-05T13:14:15+08:00\").ToString() // 2020-08-05 13:14:15 +0800 CST\ncarbon.Parse(\"2020-08-05T13:14:15.999+08:00\").ToString() // 2020-08-05 13:14:15.999 +0800 CST\ncarbon.Parse(\"2020-08-05T13:14:15.999999+08:00\").ToString() // 2020-08-05 13:14:15.999999 +0800 CST\ncarbon.Parse(\"2020-08-05T13:14:15.999999999+08:00\").ToString() // 2020-08-05 13:14:15.999999999 +0800 CST\n\ncarbon.Parse(\"20200805\").ToString() // 2020-08-05 00:00:00 +0800 CST\ncarbon.Parse(\"20200805131415\").ToString() // 2020-08-05 13:14:15 +0800 CST\ncarbon.Parse(\"20200805131415.999\").ToString() // 2020-08-05 13:14:15.999 +0800 CST\ncarbon.Parse(\"20200805131415.999999\").ToString() // 2020-08-05 13:14:15.999999 +0800 CST\ncarbon.Parse(\"20200805131415.999999999\").ToString() // 2020-08-05 13:14:15.999999999 +0800 CST\ncarbon.Parse(\"20200805131415.999+08:00\").ToString() // 2020-08-05 13:14:15.999 +0800 CST\ncarbon.Parse(\"20200805131415.999999+08:00\").ToString() // 2020-08-05 13:14:15.999999 +0800 CST\ncarbon.Parse(\"20200805131415.999999999+08:00\").ToString() // 2020-08-05 13:14:15.999999999 +0800 CST\n\ncarbon.Parse(\"2022-03-08T03:01:14-07:00\").ToString() // 2022-03-08 18:01:14 +0800 CST\ncarbon.Parse(\"2022-03-08T10:01:14Z\").ToString() // 2022-03-08 18:01:14 +0800 CST\n```\n\n##### 通过一个确认的 `布局模板` 将时间字符串解析成 `Carbon` 实例\n\n```go\ncarbon.ParseByLayout(\"2020|08|05 13|14|15\", \"2006|01|02 15|04|05\").ToDateTimeString() // 2020-08-05 13:14:15\ncarbon.ParseByLayout(\"It is 2020-08-05 13:14:15\", \"It is 2006-01-02 15:04:05\").ToDateTimeString() // 2020-08-05 13:14:15\ncarbon.ParseByLayout(\"今天是 2020年08月05日13时14分15秒\", \"今天是 2006年01月02日15时04分05秒\").ToDateTimeString() // 2020-08-05 13:14:15\ncarbon.ParseByLayout(\"2020-08-05 13:14:15\", \"2006-01-02 15:04:05\", carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15\n```\n\n##### 通过多个模糊的 `布局模板` 将时间字符串解析成 `Carbon` 实例\n\n```go\ncarbon.ParseByLayouts(\"2020|08|05 13|14|15\", []string{\"2006|01|02 15|04|05\", \"2006|1|2 3|4|5\"}).ToDateTimeString() // 2020-08-05 13:14:15\ncarbon.ParseByLayouts(\"2020|08|05 13|14|15\", []string{\"2006|01|02 15|04|05\", \"2006|1|2 3|4|5\"}).CurrentLayout() // 2006|01|02 15|04|05\n```\n\n##### 通过一个确认的 `格式模板` 将时间字符串解析成 `Carbon` 实例\n\n\u003e 如果使用的字母与格式模板冲突时，请使用转义符转义该字母\n\n```go\ncarbon.ParseByFormat(\"2020|08|05 13|14|15\", \"Y|m|d H|i|s\").ToDateTimeString() // 2020-08-05 13:14:15\ncarbon.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:15\ncarbon.ParseByFormat(\"今天是 2020年08月05日13时14分15秒\", \"今天是 Y年m月d日H时i分s秒\").ToDateTimeString() // 2020-08-05 13:14:15\ncarbon.ParseByFormat(\"2020-08-05 13:14:15\", \"Y-m-d H:i:s\", carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15\n```\n\n##### 通过多个模糊的 `格式模板` 将时间字符串解析成 `Carbon` 实例\n\n```go\ncarbon.ParseByFormats(\"2020|08|05 13|14|15\", []string{\"Y|m|d H|i|s\", \"y|m|d h|i|s\"}).ToDateTimeString() // 2020-08-05 13:14:15\ncarbon.ParseByFormats(\"2020|08|05 13|14|15\", []string{\"Y|m|d H|i|s\", \"y|m|d h|i|s\"}).CurrentLayout() // 2006|01|02 15|04|05\n```\n\n##### 时间冻结\n\n```go\nnow := carbon.Parse(\"2020-08-05\")\ncarbon.SetTestNow(now)\n\ncarbon.IsTestNow() // true\ncarbon.Now().ToDateString() // 2020-08-05\ncarbon.Yesterday().ToDateString() // 2020-08-04\ncarbon.Tomorrow().ToDateString() // 2020-08-05\ncarbon.Now().DiffForHumans() // just now\ncarbon.Yesterday().DiffForHumans() // 1 day ago\ncarbon.Tomorrow().DiffForHumans() // 1 day from now\ncarbon.Parse(\"2020-10-05\").DiffForHumans() // 2 months from now\nnow.DiffForHumans(carbon.Parse(\"2020-10-05\")) // 2 months before\n\ncarbon.ClearTestNow()\ncarbon.IsTestNow() // false\n```\n\n##### 时间边界\n\n```go\n// 本世纪开始时间\ncarbon.Parse(\"2020-08-05 13:14:15\").StartOfCentury().ToDateTimeString() // 2000-01-01 00:00:00\n// 本世纪结束时间\ncarbon.Parse(\"2020-08-05 13:14:15\").EndOfCentury().ToDateTimeString() // 2999-12-31 23:59:59\n\n// 本年代开始时间\ncarbon.Parse(\"2020-08-05 13:14:15\").StartOfDecade().ToDateTimeString() // 2020-01-01 00:00:00\ncarbon.Parse(\"2021-08-05 13:14:15\").StartOfDecade().ToDateTimeString() // 2020-01-01 00:00:00\ncarbon.Parse(\"2029-08-05 13:14:15\").StartOfDecade().ToDateTimeString() // 2020-01-01 00:00:00\n// 本年代结束时间\ncarbon.Parse(\"2020-08-05 13:14:15\").EndOfDecade().ToDateTimeString() // 2029-12-31 23:59:59\ncarbon.Parse(\"2021-08-05 13:14:15\").EndOfDecade().ToDateTimeString() // 2029-12-31 23:59:59\ncarbon.Parse(\"2029-08-05 13:14:15\").EndOfDecade().ToDateTimeString() // 2029-12-31 23:59:59\n\n// 本年开始时间\ncarbon.Parse(\"2020-08-05 13:14:15\").StartOfYear().ToDateTimeString() // 2020-01-01 00:00:00\n// 本年结束时间\ncarbon.Parse(\"2020-08-05 13:14:15\").EndOfYear().ToDateTimeString() // 2020-12-31 23:59:59\n\n// 本季度开始时间\ncarbon.Parse(\"2020-08-05 13:14:15\").StartOfQuarter().ToDateTimeString() // 2020-07-01 00:00:00\n// 本季度结束时间\ncarbon.Parse(\"2020-08-05 13:14:15\").EndOfQuarter().ToDateTimeString() // 2020-09-30 23:59:59\n\n// 本月开始时间\ncarbon.Parse(\"2020-08-05 13:14:15\").StartOfMonth().ToDateTimeString() // 2020-08-01 00:00:00\n// 本月结束时间\ncarbon.Parse(\"2020-08-05 13:14:15\").EndOfMonth().ToDateTimeString() // 2020-08-31 23:59:59\n\n// 本周开始时间\ncarbon.Parse(\"2020-08-05 13:14:15\").StartOfWeek().ToDateTimeString() // 2020-08-02 00:00:00\ncarbon.Parse(\"2020-08-05 13:14:15\").SetWeekStartsAt(carbon.Sunday).StartOfWeek().ToDateTimeString() // 2020-08-02 00:00:00\ncarbon.Parse(\"2020-08-05 13:14:15\").SetWeekStartsAt(carbon.Monday).StartOfWeek().ToDateTimeString() // 2020-08-03 00:00:00\n// 本周结束时间\ncarbon.Parse(\"2020-08-05 13:14:15\").EndOfWeek().ToDateTimeString() // 2020-08-08 23:59:59\ncarbon.Parse(\"2020-08-05 13:14:15\").SetWeekStartsAt(carbon.Sunday).EndOfWeek().ToDateTimeString() // 2020-08-08 23:59:59\ncarbon.Parse(\"2020-08-05 13:14:15\").SetWeekStartsAt(carbon.Monday).EndOfWeek().ToDateTimeString() // 2020-08-09 23:59:59\n\n// 本日开始时间\ncarbon.Parse(\"2020-08-05 13:14:15\").StartOfDay().ToDateTimeString() // 2020-08-05 00:00:00\n// 本日结束时间\ncarbon.Parse(\"2020-08-05 13:14:15\").EndOfDay().ToDateTimeString() // 2020-08-05 23:59:59\n\n// 本小时开始时间\ncarbon.Parse(\"2020-08-05 13:14:15\").StartOfHour().ToDateTimeString() // 2020-08-05 13:00:00\n// 本小时结束时间\ncarbon.Parse(\"2020-08-05 13:14:15\").EndOfHour().ToDateTimeString() // 2020-08-05 13:59:59\n\n// 本分钟开始时间\ncarbon.Parse(\"2020-08-05 13:14:15\").StartOfMinute().ToDateTimeString() // 2020-08-05 13:14:00\n// 本分钟结束时间\ncarbon.Parse(\"2020-08-05 13:14:15\").EndOfMinute().ToDateTimeString() // 2020-08-05 13:14:59\n\n// 本秒开始时间\ncarbon.Parse(\"2020-08-05 13:14:15\").StartOfSecond().ToString() // 2020-08-05 13:14:15 +0800 CST\n// 本秒结束时间\ncarbon.Parse(\"2020-08-05 13:14:15\").EndOfSecond().ToString() // 2020-08-05 13:14:15.999999999 +0800 CST\n```\n\n##### 时间旅行\n\n```go\n// 三个世纪后\ncarbon.Parse(\"2020-02-29 13:14:15\").AddCenturies(3).ToDateTimeString() // 2320-02-29 13:14:15\n// 三个世纪后(月份不溢出)\ncarbon.Parse(\"2020-02-29 13:14:15\").AddCenturiesNoOverflow(3).ToDateTimeString() // 2320-02-29 13:14:15\n// 一个世纪后\ncarbon.Parse(\"2020-02-29 13:14:15\").AddCentury().ToDateTimeString() // 2120-02-29 13:14:15\n// 一个世纪后(月份不溢出)\ncarbon.Parse(\"2020-02-29 13:14:15\").AddCenturyNoOverflow().ToDateTimeString() // 2120-02-29 13:14:15\n// 三个世纪前\ncarbon.Parse(\"2020-02-29 13:14:15\").SubCenturies(3).ToDateTimeString() // 1720-02-29 13:14:15\n// 三个世纪前(月份不溢出)\ncarbon.Parse(\"2020-02-29 13:14:15\").SubCenturiesNoOverflow(3).ToDateTimeString() // 1720-02-29 13:14:15\n// 一个世纪前\ncarbon.Parse(\"2020-02-29 13:14:15\").SubCentury().ToDateTimeString() // 1920-02-29 13:14:15\n// 一世纪前(月份不溢出)\ncarbon.Parse(\"2020-02-29 13:14:15\").SubCenturyNoOverflow().ToDateTimeString() // 1920-02-29 13:14:15\n\n// 三个年代后\ncarbon.Parse(\"2020-02-29 13:14:15\").AddDecades(3).ToDateTimeString() // 2050-03-01 13:14:15\n// 三个年代后(月份不溢出)\ncarbon.Parse(\"2020-02-29 13:14:15\").AddDecadesNoOverflow(3).ToDateTimeString() // 2050-02-28 13:14:15\n// 一个年代后\ncarbon.Parse(\"2020-02-29 13:14:15\").AddDecade().ToDateTimeString() // 2030-03-01 13:14:15\n// 一个年代后(月份不溢出)\ncarbon.Parse(\"2020-02-29 13:14:15\").AddDecadeNoOverflow().ToDateTimeString() // 2030-02-28 13:14:15\n// 三个年代前\ncarbon.Parse(\"2020-02-29 13:14:15\").SubDecades(3).ToDateTimeString() // 1990-03-01 13:14:15\n// 三个年代前(月份不溢出)\ncarbon.Parse(\"2020-02-29 13:14:15\").SubDecadesNoOverflow(3).ToDateTimeString() // 1990-02-28 13:14:15\n// 一个年代前\ncarbon.Parse(\"2020-02-29 13:14:15\").SubDecade().ToDateTimeString() // 2010-03-01 13:14:15\n// 一个年代前(月份不溢出)\ncarbon.Parse(\"2020-02-29 13:14:15\").SubDecadeNoOverflow().ToDateTimeString() // 2010-02-28 13:14:15\n\n// 三年后\ncarbon.Parse(\"2020-02-29 13:14:15\").AddYears(3).ToDateTimeString() // 2023-03-01 13:14:15\n// 三年后(月份不溢出)\ncarbon.Parse(\"2020-02-29 13:14:15\").AddYearsNoOverflow(3).ToDateTimeString() // 2023-02-28 13:14:15\n// 一年后\ncarbon.Parse(\"2020-02-29 13:14:15\").AddYear().ToDateTimeString() // 2021-03-01 13:14:15\n// 一年后(月份不溢出)\ncarbon.Parse(\"2020-02-29 13:14:15\").AddYearNoOverflow().ToDateTimeString() // 2021-02-28 13:14:15\n// 三年前\ncarbon.Parse(\"2020-02-29 13:14:15\").SubYears(3).ToDateTimeString() // 2017-03-01 13:14:15\n// 三年前(月份不溢出)\ncarbon.Parse(\"2020-02-29 13:14:15\").SubYearsNoOverflow(3).ToDateTimeString() // 2017-02-28 13:14:15\n// 一年前\ncarbon.Parse(\"2020-02-29 13:14:15\").SubYear().ToDateTimeString() // 2019-03-01 13:14:15\n// 一年前(月份不溢出)\ncarbon.Parse(\"2020-02-29 13:14:15\").SubYearNoOverflow().ToDateTimeString() // 2019-02-28 13:14:15\n\n// 三个季度后\ncarbon.Parse(\"2019-05-31 13:14:15\").AddQuarters(3).ToDateTimeString() // 2020-03-02 13:14:15\n// 三个季度后(月份不溢出)\ncarbon.Parse(\"2019-05-31 13:14:15\").AddQuartersNoOverflow(3).ToDateTimeString() // 2020-02-29 13:14:15\n// 一个季度后\ncarbon.Parse(\"2019-11-30 13:14:15\").AddQuarter().ToDateTimeString() // 2020-03-01 13:14:15\n// 一个季度后(月份不溢出)\ncarbon.Parse(\"2019-11-30 13:14:15\").AddQuarterNoOverflow().ToDateTimeString() // 2020-02-29 13:14:15\n// 三个季度前\ncarbon.Parse(\"2019-08-31 13:14:15\").SubQuarters(3).ToDateTimeString() // 2019-03-03 13:14:15\n// 三个季度前(月份不溢出)\ncarbon.Parse(\"2019-08-31 13:14:15\").SubQuartersNoOverflow(3).ToDateTimeString() // 2019-02-28 13:14:15\n// 一个季度前\ncarbon.Parse(\"2020-05-31 13:14:15\").SubQuarter().ToDateTimeString() // 2020-03-02 13:14:15\n// 一个季度前(月份不溢出)\ncarbon.Parse(\"2020-05-31 13:14:15\").SubQuarterNoOverflow().ToDateTimeString() // 2020-02-29 13:14:15\n\n// 三个月后\ncarbon.Parse(\"2020-02-29 13:14:15\").AddMonths(3).ToDateTimeString() // 2020-05-29 13:14:15\n// 三个月后(月份不溢出)\ncarbon.Parse(\"2020-02-29 13:14:15\").AddMonthsNoOverflow(3).ToDateTimeString() // 2020-05-29 13:14:15\n// 一个月后\ncarbon.Parse(\"2020-01-31 13:14:15\").AddMonth().ToDateTimeString() // 2020-03-02 13:14:15\n// 一个月后(月份不溢出)\ncarbon.Parse(\"2020-01-31 13:14:15\").AddMonthNoOverflow().ToDateTimeString() // 2020-02-29 13:14:15\n// 三个月前\ncarbon.Parse(\"2020-02-29 13:14:15\").SubMonths(3).ToDateTimeString() // 2019-11-29 13:14:15\n// 三个月前(月份不溢出)\ncarbon.Parse(\"2020-02-29 13:14:15\").SubMonthsNoOverflow(3).ToDateTimeString() // 2019-11-29 13:14:15\n// 一个月前\ncarbon.Parse(\"2020-03-31 13:14:15\").SubMonth().ToDateTimeString() // 2020-03-02 13:14:15\n// 一个月前(月份不溢出)\ncarbon.Parse(\"2020-03-31 13:14:15\").SubMonthNoOverflow().ToDateTimeString() // 2020-02-29 13:14:15\n\n// 三周后\ncarbon.Parse(\"2020-02-29 13:14:15\").AddWeeks(3).ToDateTimeString() // 2020-03-21 13:14:15\n// 一周后\ncarbon.Parse(\"2020-02-29 13:14:15\").AddWeek().ToDateTimeString() // 2020-03-07 13:14:15\n// 三周前\ncarbon.Parse(\"2020-02-29 13:14:15\").SubWeeks(3).ToDateTimeString() // 2020-02-08 13:14:15\n// 一周前\ncarbon.Parse(\"2020-02-29 13:14:15\").SubWeek().ToDateTimeString() // 2020-02-22 13:14:15\n\n// 三天后\ncarbon.Parse(\"2020-08-05 13:14:15\").AddDays(3).ToDateTimeString() // 2020-08-08 13:14:15\n// 一天后\ncarbon.Parse(\"2020-08-05 13:14:15\").AddDay().ToDateTimeString() // 2020-08-05 13:14:15\n// 三天前\ncarbon.Parse(\"2020-08-05 13:14:15\").SubDays(3).ToDateTimeString() // 2020-08-02 13:14:15\n// 一天前\ncarbon.Parse(\"2020-08-05 13:14:15\").SubDay().ToDateTimeString() // 2020-08-04 13:14:15\n\n// 三小时后\ncarbon.Parse(\"2020-08-05 13:14:15\").AddHours(3).ToDateTimeString() // 2020-08-05 16:14:15\n// 二小时半后\ncarbon.Parse(\"2020-08-05 13:14:15\").AddDuration(\"2.5h\").ToDateTimeString() // 2020-08-05 15:44:15\ncarbon.Parse(\"2020-08-05 13:14:15\").AddDuration(\"2h30m\").ToDateTimeString() // 2020-08-05 15:44:15\n// 一小时后\ncarbon.Parse(\"2020-08-05 13:14:15\").AddHour().ToDateTimeString() // 2020-08-05 14:14:15\n// 三小时前\ncarbon.Parse(\"2020-08-05 13:14:15\").SubHours(3).ToDateTimeString() // 2020-08-05 10:14:15\n// 二小时半前\ncarbon.Parse(\"2020-08-05 13:14:15\").SubDuration(\"2.5h\").ToDateTimeString() // 2020-08-05 10:44:15\ncarbon.Parse(\"2020-08-05 13:14:15\").SubDuration(\"2h30m\").ToDateTimeString() // 2020-08-05 10:44:15\n// 一小时前\ncarbon.Parse(\"2020-08-05 13:14:15\").SubHour().ToDateTimeString() // 2020-08-05 12:14:15\n\n// 三分钟后\ncarbon.Parse(\"2020-08-05 13:14:15\").AddMinutes(3).ToDateTimeString() // 2020-08-05 13:17:15\n// 二分钟半后\ncarbon.Parse(\"2020-08-05 13:14:15\").AddDuration(\"2.5m\").ToDateTimeString() // 2020-08-05 13:16:45\ncarbon.Parse(\"2020-08-05 13:14:15\").AddDuration(\"2m30s\").ToDateTimeString() // 2020-08-05 13:16:45\n// 一分钟后\ncarbon.Parse(\"2020-08-05 13:14:15\").AddMinute().ToDateTimeString() // 2020-08-05 13:15:15\n// 三分钟前\ncarbon.Parse(\"2020-08-05 13:14:15\").SubMinutes(3).ToDateTimeString() // 2020-08-05 13:11:15\n// 二分钟半前\ncarbon.Parse(\"2020-08-05 13:14:15\").SubDuration(\"2.5m\").ToDateTimeString() // 2020-08-05 13:11:45\ncarbon.Parse(\"2020-08-05 13:14:15\").SubDuration(\"2m30s\").ToDateTimeString() // 2020-08-05 13:11:45\n// 一分钟前\ncarbon.Parse(\"2020-08-05 13:14:15\").SubMinute().ToDateTimeString() // 2020-08-05 13:13:15\n\n// 三秒钟后\ncarbon.Parse(\"2020-08-05 13:14:15\").AddSeconds(3).ToDateTimeString() // 2020-08-05 13:14:18\n// 二秒钟半后\ncarbon.Parse(\"2020-08-05 13:14:15\").AddDuration(\"2.5s\").ToDateTimeString() // 2020-08-05 13:14:17\n// 一秒钟后\ncarbon.Parse(\"2020-08-05 13:14:15\").AddSecond().ToDateTimeString() // 2020-08-05 13:14:16\n// 三秒钟前\ncarbon.Parse(\"2020-08-05 13:14:15\").SubSeconds(3).ToDateTimeString() // 2020-08-05 13:14:12\n// 二秒钟半前\ncarbon.Parse(\"2020-08-05 13:14:15\").SubDuration(\"2.5s\").ToDateTimeString() // 2020-08-05 13:14:12\n// 一秒钟前\ncarbon.Parse(\"2020-08-05 13:14:15\").SubSecond().ToDateTimeString() // 2020-08-05 13:14:14\n\n// 三毫秒后\ncarbon.Parse(\"2020-08-05 13:14:15.222222222\").AddMilliseconds(3).ToString() // 2020-08-05 13:14:15.225222222 +0800 CST\n// 一毫秒后\ncarbon.Parse(\"2020-08-05 13:14:15.222222222\").AddMillisecond().ToString() // 2020-08-05 13:14:15.223222222 +0800 CST\n// 三毫秒前\ncarbon.Parse(\"2020-08-05 13:14:15.222222222\").SubMilliseconds(3).ToString() // 2020-08-05 13:14:15.219222222 +0800 CST\n// 一毫秒前\ncarbon.Parse(\"2020-08-05 13:14:15.222222222\").SubMillisecond().ToString() // 2020-08-05 13:14:15.221222222 +0800 CST\n\n// 三微秒后\ncarbon.Parse(\"2020-08-05 13:14:15.222222222\").AddMicroseconds(3).ToString() // 2020-08-05 13:14:15.222225222 +0800 CST\n// 一微秒后\ncarbon.Parse(\"2020-08-05 13:14:15.222222222\").AddMicrosecond().ToString() // 2020-08-05 13:14:15.222223222 +0800 CST\n// 三微秒前\ncarbon.Parse(\"2020-08-05 13:14:15.222222222\").SubMicroseconds(3).ToString() // 2020-08-05 13:14:15.222219222 +0800 CST\n// 一微秒前\ncarbon.Parse(\"2020-08-05 13:14:15.222222222\").SubMicrosecond().ToString() // 2020-08-05 13:14:15.222221222 +0800 CST\n\n// 三纳秒后\ncarbon.Parse(\"2020-08-05 13:14:15.222222222\").AddNanoseconds(3).ToString() // 2020-08-05 13:14:15.222222225 +0800 CST\n// 一纳秒后\ncarbon.Parse(\"2020-08-05 13:14:15.222222222\").AddNanosecond().ToString() // 2020-08-05 13:14:15.222222223 +0800 CST\n// 三纳秒前\ncarbon.Parse(\"2020-08-05 13:14:15.222222222\").SubNanoseconds(3).ToString() // 2020-08-05 13:14:15.222222219 +0800 CST\n// 一纳秒前\ncarbon.Parse(\"2020-08-05 13:14:15.222222222\").SubNanosecond().ToString() // 2020-08-05 13:14:15.222222221 +0800 CST\n```\n\n##### 时间差值\n\n```go\n// 相差多少年\ncarbon.Parse(\"2021-08-05 13:14:15\").DiffInYears(carbon.Parse(\"2020-08-05 13:14:15\")) // -1\n// 相差多少年（绝对值）\ncarbon.Parse(\"2021-08-05 13:14:15\").DiffAbsInYears(carbon.Parse(\"2020-08-05 13:14:15\")) // 1\n\n// 相差多少月\ncarbon.Parse(\"2020-08-05 13:14:15\").DiffInMonths(carbon.Parse(\"2020-07-05 13:14:15\")) // -1\n// 相差多少月（绝对值）\ncarbon.Parse(\"2020-08-05 13:14:15\").DiffAbsInMonths(carbon.Parse(\"2020-07-05 13:14:15\")) // 1\n\n// 相差多少周\ncarbon.Parse(\"2020-08-05 13:14:15\").DiffInWeeks(carbon.Parse(\"2020-07-28 13:14:15\")) // -1\n// 相差多少周（绝对值）\ncarbon.Parse(\"2020-08-05 13:14:15\").DiffAbsInWeeks(carbon.Parse(\"2020-07-28 13:14:15\")) // 1\n\n// 相差多少天\ncarbon.Parse(\"2020-08-05 13:14:15\").DiffInDays(carbon.Parse(\"2020-08-04 13:14:15\")) // -1\n// 相差多少天（绝对值）\ncarbon.Parse(\"2020-08-05 13:14:15\").DiffAbsInDays(carbon.Parse(\"2020-08-04 13:14:15\")) // 1\n\n// 相差多少小时\ncarbon.Parse(\"2020-08-05 13:14:15\").DiffInHours(carbon.Parse(\"2020-08-05 12:14:15\")) // -1\n// 相差多少小时（绝对值）\ncarbon.Parse(\"2020-08-05 13:14:15\").DiffAbsInHours(carbon.Parse(\"2020-08-05 12:14:15\")) // 1\n\n// 相差多少分\ncarbon.Parse(\"2020-08-05 13:14:15\").DiffInMinutes(carbon.Parse(\"2020-08-05 13:13:15\")) // -1\n// 相差多少分（绝对值）\ncarbon.Parse(\"2020-08-05 13:14:15\").DiffAbsInMinutes(carbon.Parse(\"2020-08-05 13:13:15\")) // 1\n\n// 相差多少秒\ncarbon.Parse(\"2020-08-05 13:14:15\").DiffInSeconds(carbon.Parse(\"2020-08-05 13:14:14\")) // -1\n// 相差多少秒（绝对值）\ncarbon.Parse(\"2020-08-05 13:14:15\").DiffAbsInSeconds(carbon.Parse(\"2020-08-05 13:14:14\")) // 1\n\n// 相差字符串\ncarbon.Now().DiffInString() // just now\ncarbon.Now().AddYearsNoOverflow(1).DiffInString() // -1 year\ncarbon.Now().SubYearsNoOverflow(1).DiffInString() // 1 year\n// 相差字符串（绝对值）\ncarbon.Now().DiffAbsInString(carbon.Now()) // just now\ncarbon.Now().AddYearsNoOverflow(1).DiffAbsInString(carbon.Now()) // 1 year\ncarbon.Now().SubYearsNoOverflow(1).DiffAbsInString(carbon.Now()) // 1 year\n\n// 相差时长\nnow := carbon.Now()\nnow.DiffInDuration(now).String() // 0s\nnow.AddHour().DiffInDuration(now).String() // 1h0m0s\nnow.SubHour().DiffInDuration(now).String() // -1h0m0s\n// 相差时长（绝对值）\nnow.DiffAbsInDuration(now).String() // 0s\nnow.AddHour().DiffAbsInDuration(now).String() // 1h0m0s\nnow.SubHour().DiffAbsInDuration(now).String() // 1h0m0s\n\n// 对人类友好的可读格式时间差\ncarbon.Parse(\"2020-08-05 13:14:15\").DiffForHumans() // just now\ncarbon.Parse(\"2019-08-05 13:14:15\").DiffForHumans() // 1 year ago\ncarbon.Parse(\"2018-08-05 13:14:15\").DiffForHumans() // 2 years ago\ncarbon.Parse(\"2021-08-05 13:14:15\").DiffForHumans() // 1 year from now\ncarbon.Parse(\"2022-08-05 13:14:15\").DiffForHumans() // 2 years from now\n\ncarbon.Parse(\"2020-08-05 13:14:15\").DiffForHumans(carbon.Now()) // 1 year before\ncarbon.Parse(\"2019-08-05 13:14:15\").DiffForHumans(carbon.Now()) // 2 years before\ncarbon.Parse(\"2018-08-05 13:14:15\").DiffForHumans(carbon.Now()) // 1 year after\ncarbon.Parse(\"2022-08-05 13:14:15\").DiffForHumans(carbon.Now()) // 2 years after\n```\n\n##### 时间极值\n\n```go\nc1 := carbon.Parse(\"2023-03-28\")\nc2 := carbon.Parse(\"2023-04-16\")\n// 返回最近的 Carbon 实例\ncarbon.Parse(\"2023-04-01\").Closest(c1, c2) // c1\n// 返回最远的 Carbon 实例\ncarbon.Parse(\"2023-04-01\").Farthest(c1, c2) // c2\n\nyesterday := carbon.Yesterday()\ntoday := carbon.Now()\ntomorrow := carbon.Tomorrow()\n// 返回最大的 Carbon 实例\ncarbon.Max(yesterday, today, tomorrow) // tomorrow\n// 返回最小的 Carbon 实例\ncarbon.Min(yesterday, today, tomorrow) // yesterday\n\n// 返回 Carbon 的最大值\ncarbon.MaxValue().ToString() // 9999-12-31 23:59:59.999999999 +0000 UTC\n// 返回 Carbon 的最小值\ncarbon.MinValue().ToString() // 0001-01-01 00:00:00 +0000 UTC\n\n// 返回 Duration 的最大值\ncarbon.MaxDuration().Seconds() // 9.223372036854776e+09\n// 返回 Duration 的最小值\ncarbon.MinDuration().Seconds() // -9.223372036854776e+09\n```\n\n##### 时间判断\n\n```go\n// 是否有错误\ncarbon.Parse(\"0001-01-01 00:00:00 +0000 UTC\").HasError() // false\ncarbon.NewCarbon().HasError() // false\ncarbon.Parse(\"\").HasError() // false\ncarbon.Parse(\"0\").HasError() // true\ncarbon.Parse(\"xxx\").HasError() // true\ncarbon.Parse(\"2020-08-05\").HasError() // false\ncarbon.CreateFromTimestamp(0).HasError() // false\n\n// 是否是 nil\ncarbon.Parse(\"0001-01-01 00:00:00 +0000 UTC\").IsNil() // false\ncarbon.NewCarbon().IsNil() // false\ncarbon.Parse(\"\").IsNil() // true\ncarbon.Parse(\"0\").IsNil() // false\ncarbon.Parse(\"xxx\").IsNil() // false\ncarbon.NewCarbon().IsNil() // false\ncarbon.CreateFromTimestamp(0).IsNil() // false\n\n// 是否是零值时间(0001-01-01 00:00:00 +0000 UTC)\ncarbon.Parse(\"0001-01-01 00:00:00 +0000 UTC\").IsZero() // true\ncarbon.NewCarbon().IsZero() // true\ncarbon.CreateFromTimestamp(0).IsZero() // false\ncarbon.Parse(\"\").IsZero() // false\ncarbon.Parse(\"xxx\").IsZero() // false\ncarbon.Parse(\"0\").IsZero() // false\ncarbon.Parse(\"0000-00-00 00:00:00\").IsZero() // false\ncarbon.Parse(\"0000-00-00\").IsZero() // false\ncarbon.Parse(\"00:00:00\").IsZero() // false\ncarbon.Parse(\"2020-08-05 00:00:00\").IsZero() // false\ncarbon.Parse(\"2020-08-05\").IsZero() // false\ncarbon.Parse(\"2020-08-05\").SetTimezone(\"xxx\").IsZero() // false\n\n// 是否是空值\ncarbon.Parse(\"0001-01-01 00:00:00 +0000 UTC\").IsEmpty() // true\ncarbon.NewCarbon().IsEmpty() // false\ncarbon.CreateFromTimestamp(0).IsEmpty() // false\ncarbon.Parse(\"\").IsEmpty() // true\ncarbon.Parse(\"xxx\").IsEmpty() // false\ncarbon.Parse(\"0\").IsEmpty() // false\ncarbon.Parse(\"0000-00-00 00:00:00\").IsEmpty() // false\ncarbon.Parse(\"0000-00-00\").IsEmpty() // false\ncarbon.Parse(\"00:00:00\").IsEmpty() // false\ncarbon.Parse(\"2020-08-05 00:00:00\").IsEmpty() // false\ncarbon.Parse(\"2020-08-05\").IsEmpty() // false\ncarbon.Parse(\"2020-08-05\").SetTimezone(\"xxx\").IsEmpty() // false\n\n// 是否是 UNIX 纪元时间(1970-01-01 00:00:00 +0000 UTC)\ncarbon.Parse(\"1970-01-01 00:00:00 +0000 UTC\").IsEpoch() // true\ncarbon.CreateFromTimestamp(0).IsEpoch() // true\ncarbon.Parse(\"0001-01-01 00:00:00 +0000 UTC\").IsEpoch() // false\ncarbon.NewCarbon().IsEpoch() // false\ncarbon.Parse(\"\").IsEpoch() // false\ncarbon.Parse(\"0\").IsEpoch() // false\ncarbon.Parse(\"xxx\").IsEpoch() // false\ncarbon.Parse(\"0000-00-00 00:00:00\").IsEpoch() // false\ncarbon.Parse(\"0000-00-00\").IsEpoch() // false\ncarbon.Parse(\"00:00:00\").IsEpoch() // false\ncarbon.Parse(\"2020-08-05 00:00:00\").IsEpoch() // false\ncarbon.Parse(\"2020-08-05\").IsEpoch() // false\ncarbon.Parse(\"2020-08-05\").SetTimezone(\"xxx\").IsEpoch() // false\n\n// 是否是有效时间\ncarbon.Parse(\"0001-01-01 00:00:00 +0000 UTC\").IsValid()\ncarbon.CreateFromTimestamp(0).IsValid() // true\ncarbon.NewCarbon().IsValid() // true\ncarbon.Parse(\"\").IsValid() // false\ncarbon.Parse(\"0\").IsValid() // false\ncarbon.Parse(\"xxx\").IsValid() // false\ncarbon.Parse(\"0000-00-00 00:00:00\").IsValid() // false\ncarbon.Parse(\"0000-00-00\").IsValid() // false\ncarbon.Parse(\"00:00:00\").IsValid() // false\ncarbon.Parse(\"2020-08-05 00:00:00\").IsValid() // true\ncarbon.Parse(\"2020-08-05\").IsValid() // true\ncarbon.Parse(\"2020-08-05\").SetTimezone(\"xxx\").IsValid() // false\n\n// 是否是无效时间\ncarbon.Parse(\"0001-01-01 00:00:00 +0000 UTC\").IsInvalid() // false\ncarbon.CreateFromTimestamp(0).IsInvalid() // false\ncarbon.NewCarbon().IsInvalid() // false\ncarbon.Parse(\"\").IsInvalid() // true\ncarbon.Parse(\"0\").IsInvalid() // true\ncarbon.Parse(\"xxx\").IsInvalid() // true\ncarbon.Parse(\"0000-00-00 00:00:00\").IsInvalid() // true\ncarbon.Parse(\"0000-00-00\").IsInvalid() // true\ncarbon.Parse(\"00:00:00\").IsInvalid() // true\ncarbon.Parse(\"2020-08-05 00:00:00\").IsInvalid() // false\ncarbon.Parse(\"2020-08-05\").IsInvalid() // false\ncarbon.Parse(\"2020-08-05\").SetTimezone(\"xxx\").IsInvalid() // true\n\n// 是否是夏令时\ncarbon.Parse(\"\").IsDST() // false\ncarbon.Parse(\"0\").IsDST() // false\ncarbon.Parse(\"xxx\").IsDST() // false\ncarbon.Parse(\"0000-00-00 00:00:00\").IsDST() // false\ncarbon.Parse(\"0000-00-00\").IsDST() // false\ncarbon.Parse(\"00:00:00\").IsDST() // false\ncarbon.Parse(\"2023-01-01\", \"Australia/Brisbane\").IsDST() // false\ncarbon.Parse(\"2023-01-01\", \"Australia/Sydney\").IsDST() // true\n\n// 是否是上午\ncarbon.Parse(\"2020-08-05 00:00:00\").IsAM() // true\ncarbon.Parse(\"2020-08-05 08:00:00\").IsAM() // true\ncarbon.Parse(\"2020-08-05 12:00:00\").IsAM() // false\ncarbon.Parse(\"2020-08-05 13:00:00\").IsAM() // false\n// 是否是下午\ncarbon.Parse(\"2020-08-05 00:00:00\").IsPM() // false\ncarbon.Parse(\"2020-08-05 08:00:00\").IsPM() // false\ncarbon.Parse(\"2020-08-05 12:00:00\").IsPM() // true\ncarbon.Parse(\"2020-08-05 13:00:00\").IsPM() // true\n\n// 是否是当前时间\ncarbon.Now().IsNow() // true\n// 是否是未来时间\ncarbon.Tomorrow().IsFuture() // true\n// 是否是过去时间\ncarbon.Yesterday().IsPast() // true\n\n// 是否是闰年\ncarbon.Parse(\"2020-08-05 13:14:15\").IsLeapYear() // true\n// 是否是长年\ncarbon.Parse(\"2020-08-05 13:14:15\").IsLongYear() // true\n\n// 是否是一月\ncarbon.Parse(\"2020-08-05 13:14:15\").IsJanuary() // false\n// 是否是二月\ncarbon.Parse(\"2020-08-05 13:14:15\").IsFebruary() // false\n// 是否是三月\ncarbon.Parse(\"2020-08-05 13:14:15\").IsMarch() // false\n// 是否是四月\ncarbon.Parse(\"2020-08-05 13:14:15\").IsApril() // false\n// 是否是五月\ncarbon.Parse(\"2020-08-05 13:14:15\").IsMay() // false\n// 是否是六月\ncarbon.Parse(\"2020-08-05 13:14:15\").IsJune() // false\n// 是否是七月\ncarbon.Parse(\"2020-08-05 13:14:15\").IsJuly() // false\n// 是否是八月\ncarbon.Parse(\"2020-08-05 13:14:15\").IsAugust() // false\n// 是否是九月\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSeptember() // true\n// 是否是十月\ncarbon.Parse(\"2020-08-05 13:14:15\").IsOctober() // false\n// 是否是十一月\ncarbon.Parse(\"2020-08-05 13:14:15\").IsNovember() // false\n// 是否是十二月\ncarbon.Parse(\"2020-08-05 13:14:15\").IsDecember() // false\n\n// 是否是周一\ncarbon.Parse(\"2020-08-05 13:14:15\").IsMonday() // false\n// 是否是周二\ncarbon.Parse(\"2020-08-05 13:14:15\").IsTuesday() // true\n// 是否是周三\ncarbon.Parse(\"2020-08-05 13:14:15\").IsWednesday() // false\n// 是否是周四\ncarbon.Parse(\"2020-08-05 13:14:15\").IsThursday() // false\n// 是否是周五\ncarbon.Parse(\"2020-08-05 13:14:15\").IsFriday() // false\n// 是否是周六\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSaturday() // false\n// 是否是周日\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSunday() // false\n\n// 是否是工作日\ncarbon.Parse(\"2020-08-05 13:14:15\").IsWeekday() // false\n// 是否是周末\ncarbon.Parse(\"2020-08-05 13:14:15\").IsWeekend() // true\n\n// 是否是昨天\ncarbon.Parse(\"2020-08-04 13:14:15\").IsYesterday() // true\ncarbon.Parse(\"2020-08-04 00:00:00\").IsYesterday() // true\ncarbon.Parse(\"2020-08-04\").IsYesterday() // true\n// 是否是今天\ncarbon.Parse(\"2020-08-05 13:14:15\").IsToday() // true\ncarbon.Parse(\"2020-08-05 00:00:00\").IsToday() // true\ncarbon.Parse(\"2020-08-05\").IsToday() // true\n// 是否是明天\ncarbon.Parse(\"2020-08-06 13:14:15\").IsTomorrow() // true\ncarbon.Parse(\"2020-08-06 00:00:00\").IsTomorrow() // true\ncarbon.Parse(\"2020-08-06\").IsTomorrow() // true\n\n// 是否是同一世纪\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSameCentury(carbon.Parse(\"3020-08-05 13:14:15\")) // false\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSameCentury(carbon.Parse(\"2099-08-05 13:14:15\")) // true\n// 是否是同一年代\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSameDecade(carbon.Parse(\"2030-08-05 13:14:15\")) // false\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSameDecade(carbon.Parse(\"2120-08-05 13:14:15\")) // true\n// 是否是同一年\ncarbon.Parse(\"2020-08-05 00:00:00\").IsSameYear(carbon.Parse(\"2021-08-05 13:14:15\")) // false\ncarbon.Parse(\"2020-01-01 00:00:00\").IsSameYear(carbon.Parse(\"2020-12-31 13:14:15\")) // true\n// 是否是同一季节\ncarbon.Parse(\"2020-08-05 00:00:00\").IsSameQuarter(carbon.Parse(\"2020-09-05 13:14:15\")) // false\ncarbon.Parse(\"2020-01-01 00:00:00\").IsSameQuarter(carbon.Parse(\"2021-01-31 13:14:15\")) // true\n// 是否是同一月\ncarbon.Parse(\"2020-01-01 00:00:00\").IsSameMonth(carbon.Parse(\"2021-01-31 13:14:15\")) // false\ncarbon.Parse(\"2020-01-01 00:00:00\").IsSameMonth(carbon.Parse(\"2020-01-31 13:14:15\")) // true\n// 是否是同一天\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSameDay(carbon.Parse(\"2021-08-05 13:14:15\")) // false\ncarbon.Parse(\"2020-08-05 00:00:00\").IsSameDay(carbon.Parse(\"2020-08-05 13:14:15\")) // true\n// 是否是同一小时\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSameHour(carbon.Parse(\"2021-08-05 13:14:15\")) // false\ncarbon.Parse(\"2020-08-05 13:00:00\").IsSameHour(carbon.Parse(\"2020-08-05 13:14:15\")) // true\n// 是否是同一分钟\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSameMinute(carbon.Parse(\"2021-08-05 13:14:15\")) // false\ncarbon.Parse(\"2020-08-05 13:14:00\").IsSameMinute(carbon.Parse(\"2020-08-05 13:14:15\")) // true\n// 是否是同一秒\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSameSecond(carbon.Parse(\"2021-08-05 13:14:15\")) // false\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSameSecond(carbon.Parse(\"2020-08-05 13:14:15\")) // true\n\n// 是否大于\ncarbon.Parse(\"2020-08-05 13:14:15\").Gt(carbon.Parse(\"2020-08-04 13:14:15\")) // true\ncarbon.Parse(\"2020-08-05 13:14:15\").Gt(carbon.Parse(\"2020-08-05 13:14:15\")) // false\ncarbon.Parse(\"2020-08-05 13:14:15\").Compare(\"\u003e\", carbon.Parse(\"2020-08-04 13:14:15\")) // true\ncarbon.Parse(\"2020-08-05 13:14:15\").Compare(\"\u003e\", carbon.Parse(\"2020-08-05 13:14:15\")) // false\n\n// 是否小于\ncarbon.Parse(\"2020-08-05 13:14:15\").Lt(carbon.Parse(\"2020-08-06 13:14:15\")) // true\ncarbon.Parse(\"2020-08-05 13:14:15\").Lt(carbon.Parse(\"2020-08-05 13:14:15\")) // false\ncarbon.Parse(\"2020-08-05 13:14:15\").Compare(\"\u003c\", carbon.Parse(\"2020-08-06 13:14:15\")) // true\ncarbon.Parse(\"2020-08-05 13:14:15\").Compare(\"\u003c\", carbon.Parse(\"2020-08-05 13:14:15\")) // false\n\n// 是否等于\ncarbon.Parse(\"2020-08-05 13:14:15\").Eq(carbon.Parse(\"2020-08-05 13:14:15\")) // true\ncarbon.Parse(\"2020-08-05 13:14:15\").Eq(carbon.Parse(\"2020-08-05 13:14:00\")) // false\ncarbon.Parse(\"2020-08-05 13:14:15\").Compare(\"=\", carbon.Parse(\"2020-08-05 13:14:15\")) // true\ncarbon.Parse(\"2020-08-05 13:14:15\").Compare(\"=\", carbon.Parse(\"2020-08-05 13:14:00\")) // false\n\n// 是否不等于\ncarbon.Parse(\"2020-08-05 13:14:15\").Ne(carbon.Parse(\"2020-08-06 13:14:15\")) // true\ncarbon.Parse(\"2020-08-05 13:14:15\").Ne(carbon.Parse(\"2020-08-05 13:14:15\")) // false\ncarbon.Parse(\"2020-08-05 13:14:15\").Compare(\"!=\", carbon.Parse(\"2020-08-06 13:14:15\")) // true\ncarbon.Parse(\"2020-08-05 13:14:15\").Compare(\"\u003c\u003e\", carbon.Parse(\"2020-08-05 13:14:15\")) // false\n\n// 是否大于等于\ncarbon.Parse(\"2020-08-05 13:14:15\").Gte(carbon.Parse(\"2020-08-04 13:14:15\")) // true\ncarbon.Parse(\"2020-08-05 13:14:15\").Gte(carbon.Parse(\"2020-08-05 13:14:15\")) // true\ncarbon.Parse(\"2020-08-05 13:14:15\").Compare(\"\u003e=\", carbon.Parse(\"2020-08-04 13:14:15\")) // true\ncarbon.Parse(\"2020-08-05 13:14:15\").Compare(\"\u003e=\", carbon.Parse(\"2020-08-05 13:14:15\")) // true\n\n// 是否小于等于\ncarbon.Parse(\"2020-08-05 13:14:15\").Lte(carbon.Parse(\"2020-08-06 13:14:15\")) // true\ncarbon.Parse(\"2020-08-05 13:14:15\").Lte(carbon.Parse(\"2020-08-05 13:14:15\")) // true\ncarbon.Parse(\"2020-08-05 13:14:15\").Compare(\"\u003c=\", carbon.Parse(\"2020-08-06 13:14:15\")) // true\ncarbon.Parse(\"2020-08-05 13:14:15\").Compare(\"\u003c=\", carbon.Parse(\"2020-08-05 13:14:15\")) // true\n\n// 是否在两个时间之间(不包括这两个时间)\ncarbon.Parse(\"2020-08-05 13:14:15\").Between(carbon.Parse(\"2020-08-05 13:14:15\"), carbon.Parse(\"2020-08-06 13:14:15\")) // false\ncarbon.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\n\n// 是否在两个时间之间(包括开始时间)\ncarbon.Parse(\"2020-08-05 13:14:15\").BetweenIncludedStart(carbon.Parse(\"2020-08-05 13:14:15\"), carbon.Parse(\"2020-08-06 13:14:15\")) // true\ncarbon.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\n\n// 是否在两个时间之间(包括结束时间)\ncarbon.Parse(\"2020-08-05 13:14:15\").BetweenIncludedEnd(carbon.Parse(\"2020-08-04 13:14:15\"), carbon.Parse(\"2020-08-05 13:14:15\")) // true\ncarbon.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\n\n// 是否在两个时间之间(包括这两个时间)\ncarbon.Parse(\"2020-08-05 13:14:15\").BetweenIncludedBoth(carbon.Parse(\"2020-08-05 13:14:15\"), carbon.Parse(\"2020-08-06 13:14:15\")) // true\ncarbon.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\n```\n\n\u003e 关于长年(LongYear)的定义, 请查看 https://en.wikipedia.org/wiki/ISO_8601#Week_dates\n\n##### 时间设置\n\n```go\n// 设置时区\ncarbon.Parse(\"2020-08-05 13:14:15\").SetTimezone(carbon.UTC).ToString() // 2020-08-05 13:14:15 +0000 UTC\ncarbon.Parse(\"2020-08-05 13:14:15\").SetTimezone(carbon.PRC).ToString() // 2020-08-05 21:14:15 +0800 CST\ncarbon.Parse(\"2020-08-05 13:14:15\").SetTimezone(carbon.Tokyo).ToString() // 2020-08-05 22:14:15 +0900 JST\n\n// 设置位置\nutc, _ := time.LoadLocation(carbon.UTC)\ncarbon.Parse(\"2020-08-05 13:14:15\").SetLocation(utc).ToString() // 2020-08-05 13:14:15 +0000 UTC\nprc, _ := time.LoadLocation(carbon.PRC)\ncarbon.Parse(\"2020-08-05 13:14:15\").SetLocation(prc).ToString() // 2020-08-05 21:14:15 +0800 CST\ntokyo, _ := time.LoadLocation(carbon.Tokyo)\ncarbon.Parse(\"2020-08-05 13:14:15\").SetLocation(tokyo).ToString() // 2020-08-05 22:14:15 +0900 JST\n\n// 设置区域\ncarbon.Parse(\"2020-07-05 13:14:15\").SetLocale(\"en\").DiffForHumans() // 1 month ago\ncarbon.Parse(\"2020-07-05 13:14:15\").SetLocale(\"zh-CN\").DiffForHumans() // 1 月前\n\n// 设置年、月、日、时、分、秒\ncarbon.Parse(\"2020-01-01\").SetDateTime(2019, 2, 2, 13, 14, 15).ToString() // 2019-02-02 13:14:15 +0800 CST\ncarbon.Parse(\"2020-01-01\").SetDateTime(2019, 2, 31, 13, 14, 15).ToString() // 2019-03-03 13:14:15 +0800 CST\n// 设置年、月、日、时、分、秒、毫秒\ncarbon.Parse(\"2020-01-01\").SetDateTimeMilli(2019, 2, 2, 13, 14, 15, 999).ToString() // 2019-02-02 13:14:15.999 +0800 CST\ncarbon.Parse(\"2020-01-01\").SetDateTimeMilli(2019, 2, 31, 13, 14, 15, 999).ToString() // 2019-03-03 13:14:15.999 +0800 CST\n// 设置年、月、日、时、分、秒、微秒\ncarbon.Parse(\"2020-01-01\").SetDateTimeMicro(2019, 2, 2, 13, 14, 15, 999999).ToString() // 2019-02-02 13:14:15.999999 +0800 CST\ncarbon.Parse(\"2020-01-01\").SetDateTimeMicro(2019, 2, 31, 13, 14, 15, 999999).ToString() // 2019-03-03 13:14:15.999999 +0800 CST\n// 设置年、月、日、时、分、秒、纳秒\ncarbon.Parse(\"2020-01-01\").SetDateTimeNano(2019, 2, 2, 13, 14, 15, 999999999).ToString() // 2019-02-02 13:14:15.999999999 +0800 CST\ncarbon.Parse(\"2020-01-01\").SetDateTimeNano(2019, 2, 31, 13, 14, 15, 999999999).ToString() // 2019-03-03 13:14:15.999999999 +0800 CST\n\n// 设置年、月、日\ncarbon.Parse(\"2020-01-01\").SetDate(2019, 2, 2).ToString() // 2019-02-02 00:00:00 +0800 CST\ncarbon.Parse(\"2020-01-01\").SetDate(2019, 2, 31).ToString() // 2019-03-03 00:00:00 +0800 CST\n// 设置年、月、日、毫秒\ncarbon.Parse(\"2020-01-01\").SetDateMilli(2019, 2, 2, 999).ToString() // 2019-02-02 00:00:00.999 +0800 CST\ncarbon.Parse(\"2020-01-01\").SetDateMilli(2019, 2, 31, 999).ToString() // 2019-03-03 00:00:00.999 +0800 CST\n// 设置年、月、日、微秒\ncarbon.Parse(\"2020-01-01\").SetDateMicro(2019, 2, 2, 999999).ToString() // 2019-02-02 00:00:00.999999 +0800 CST\ncarbon.Parse(\"2020-01-01\").SetDateMicro(2019, 2, 31, 999999).ToString() // 2019-03-03 00:00:00.999999 +0800 CST\n// 设置年、月、日、纳秒\ncarbon.Parse(\"2020-01-01\").SetDateNano(2019, 2, 2, 999999999).ToString() // 2019-02-02 00:00:00.999999999 +0800 CST\ncarbon.Parse(\"2020-01-01\").SetDateNano(2019, 2, 31, 999999999).ToString() // 2019-03-03 00:00:00.999999999 +0800 CST\n\n// 设置时、分、秒\ncarbon.Parse(\"2020-01-01\").SetTime(13, 14, 15).ToString() // 2020-01-01 13:14:15 +0800 CST\ncarbon.Parse(\"2020-01-01\").SetTime(13, 14, 90).ToString() // 2020-01-01 13:15:30 +0800 CST\n// 设置时、分、秒、毫秒\ncarbon.Parse(\"2020-01-01\").SetTimeMilli(13, 14, 15, 999).ToString() // 2020-01-01 13:14:15.999 +0800 CST\ncarbon.Parse(\"2020-01-01\").SetTimeMilli(13, 14, 90, 999).ToString() // 2020-01-01 13:15:30.999 +0800 CST\n// 设置时、分、秒、微秒\ncarbon.Parse(\"2020-01-01\").SetTimeMicro(13, 14, 15, 999999).ToString() // 2020-01-01 13:14:15.999999 +0800 CST\ncarbon.Parse(\"2020-01-01\").SetTimeMicro(13, 14, 90, 999999).ToString() // 2020-01-01 13:15:30.999999 +0800 CST\n// 设置时、分、秒、纳秒\ncarbon.Parse(\"2020-01-01\").SetTimeNano(13, 14, 15, 999999999).ToString() // 2020-01-01 13:14:15.999999999 +0800 CST\ncarbon.Parse(\"2020-01-01\").SetTimeNano(13, 14, 90, 999999999).ToString() // 2020-01-01 13:15:30.999999999 +0800 CST\n\n// 设置年份\ncarbon.Parse(\"2020-02-29\").SetYear(2021).ToDateString() // 2021-03-01\n// 设置年份(月份不溢出)\ncarbon.Parse(\"2020-02-29\").SetYearNoOverflow(2021).ToDateString() // 2021-02-28\n\n// 设置月份\ncarbon.Parse(\"2020-01-31\").SetMonth(2).ToDateString() // 2020-03-02\n// 设置月份(月份不溢出)\ncarbon.Parse(\"2020-01-31\").SetMonthNoOverflow(2).ToDateString() // 2020-02-29\n\n// 设置一周的开始日期\ncarbon.Parse(\"2020-08-02\").SetWeekStartsAt(carbon.Sunday).Week() // 0\ncarbon.Parse(\"2020-08-02\").SetWeekStartsAt(carbon.Monday).Week() // 6\n\n// 设置一周的周末日期\nwd := []carbon.Weekday{\n  carbon.Saturday, carbon.Sunday,\n}\ncarbon.Parse(\"2025-04-11\").SetWeekendDays(wd).IsWeekend() // false\ncarbon.Parse(\"2025-04-12\").SetWeekendDays(wd).IsWeekend() // true\ncarbon.Parse(\"2025-04-13\").SetWeekendDays(wd).IsWeekend() // true\n\n// 设置日期\ncarbon.Parse(\"2019-08-05\").SetDay(31).ToDateString() // 2020-08-31\ncarbon.Parse(\"2020-02-01\").SetDay(31).ToDateString() // 2020-03-02\n\n// 设置小时\ncarbon.Parse(\"2020-08-05 13:14:15\").SetHour(10).ToDateTimeString() // 2020-08-05 10:14:15\ncarbon.Parse(\"2020-08-05 13:14:15\").SetHour(24).ToDateTimeString() // 2020-08-06 00:14:15\n\n// 设置分钟\ncarbon.Parse(\"2020-08-05 13:14:15\").SetMinute(10).ToDateTimeString() // 2020-08-05 13:10:15\ncarbon.Parse(\"2020-08-05 13:14:15\").SetMinute(60).ToDateTimeString() // 2020-08-05 14:00:15\n\n// 设置秒\ncarbon.Parse(\"2020-08-05 13:14:15\").SetSecond(10).ToDateTimeString() // 2020-08-05 13:14:10\ncarbon.Parse(\"2020-08-05 13:14:15\").SetSecond(60).ToDateTimeString() // 2020-08-05 13:15:00\n\n// 设置毫秒\ncarbon.Parse(\"2020-08-05 13:14:15\").SetMillisecond(100).Millisecond() // 100\ncarbon.Parse(\"2020-08-05 13:14:15\").SetMillisecond(999).Millisecond() // 999\n\n// 设置微妙\ncarbon.Parse(\"2020-08-05 13:14:15\").SetMicrosecond(100000).Microsecond() // 100000\ncarbon.Parse(\"2020-08-05 13:14:15\").SetMicrosecond(999999).Microsecond() // 999999\n\n// 设置纳秒\ncarbon.Parse(\"2020-08-05 13:14:15\").SetNanosecond(100000000).Nanosecond() // 100000000\ncarbon.Parse(\"2020-08-05 13:14:15\").SetNanosecond(999999999).Nanosecond() // 999999999\n```\n\n##### 时间获取\n\n```go\n// 获取本年总天数\ncarbon.Parse(\"2019-08-05 13:14:15\").DaysInYear() // 365\ncarbon.Parse(\"2020-08-05 13:14:15\").DaysInYear() // 366\n// 获取本月总天数\ncarbon.Parse(\"2020-02-01 13:14:15\").DaysInMonth() // 29\ncarbon.Parse(\"2020-04-01 13:14:15\").DaysInMonth() // 30\ncarbon.Parse(\"2020-08-01 13:14:15\").DaysInMonth() // 31\n\n// 获取本年第几天\ncarbon.Parse(\"2020-08-05 13:14:15\").DayOfYear() // 218\n// 获取本年第几周\ncarbon.Parse(\"2019-12-31 13:14:15\").WeekOfYear() // 1\ncarbon.Parse(\"2020-08-05 13:14:15\").WeekOfYear() // 32\n// 获取本月第几天\ncarbon.Parse(\"2020-08-05 13:14:15\").DayOfMonth() // 5\n// 获取本月第几周\ncarbon.Parse(\"2020-08-05 13:14:15\").WeekOfMonth() // 1\n// 获取本周第几天\ncarbon.Parse(\"2020-08-05 13:14:15\").DayOfWeek() // 3\n\n// 获取当前年月日时分秒\ncarbon.Parse(\"2020-08-05 13:14:15\").DateTime() // 2020,8,5,13,14,15\n// 获取当前年月日时分秒毫秒\ncarbon.Parse(\"2020-08-05 13:14:15\").DateTimeMilli() // 2020,8,5,13,14,15,999\n// 获取当前年月日时分秒微秒\ncarbon.Parse(\"2020-08-05 13:14:15\").DateTimeMicro() // 2020,8,5,13,14,15,999999\n// 获取当前年月日时分秒纳秒\ncarbon.Parse(\"2020-08-05 13:14:15\").DateTimeNano() // 2020,8,5,13,14,15,999999999\n\n// 获取当前年月日\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").Date() // 2020,8,5\n// 获取当前年月日毫秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").DateMilli() // 2020,8,5,999\n// 获取当前年月日微秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").DateMicro() // 2020,8,5,999999\n// 获取当前年月日纳秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").DateNano() // 2020,8,5,999999999\n\n// 获取当前时分秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").Time() // 13,14,15\n// 获取当前时分秒毫秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").TimeMilli() // 13,14,15,999\n// 获取当前时分秒微秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").TimeMicro() // 13,14,15,999999\n// 获取当前时分秒纳秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").TimeNano() // 13,14,15,999999999\n\n// 获取当前世纪\ncarbon.Parse(\"2020-08-05 13:14:15\").Century() // 21\n// 获取当前年代\ncarbon.Parse(\"2019-08-05 13:14:15\").Decade() // 10\ncarbon.Parse(\"2021-08-05 13:14:15\").Decade() // 20\n// 获取当前年份\ncarbon.Parse(\"2020-08-05 13:14:15\").Year() // 2020\n// 获取当前季度\ncarbon.Parse(\"2020-08-05 13:14:15\").Quarter() // 3\n// 获取当前月份\ncarbon.Parse(\"2020-08-05 13:14:15\").Month() // 8\n// 获取当前周(从0开始)\ncarbon.Parse(\"2020-08-02 13:14:15\").Week() // 0\ncarbon.Parse(\"2020-08-02\").SetWeekStartsAt(carbon.Sunday).Week() // 0\ncarbon.Parse(\"2020-08-02\").SetWeekStartsAt(carbon.Monday).Week() // 6\n// 获取当前天数\ncarbon.Parse(\"2020-08-05 13:14:15\").Day() // 5\n// 获取当前小时\ncarbon.Parse(\"2020-08-05 13:14:15\").Hour() // 13\n// 获取当前分钟\ncarbon.Parse(\"2020-08-05 13:14:15\").Minute() // 14\n// 获取当前秒钟\ncarbon.Parse(\"2020-08-05 13:14:15\").Second() // 15\n// 获取当前毫秒\ncarbon.Parse(\"2020-08-05 13:14:15.999\").Millisecond() // 999\n// 获取当前微秒\ncarbon.Parse(\"2020-08-05 13:14:15.999\").Microsecond() // 999000\n// 获取当前纳秒\ncarbon.Parse(\"2020-08-05 13:14:15.999\").Nanosecond() // 999000000\n\n// 获取秒精度时间戳\ncarbon.Parse(\"2020-08-05 13:14:15\").Timestamp() // 1596633255\n// 获取毫秒精度时间戳\ncarbon.Parse(\"2020-08-05 13:14:15.999\").TimestampMilli() // 1596633255999\n// 获取微秒精度时间戳\ncarbon.Parse(\"2020-08-05 13:14:15.999999\").TimestampMicro() // 1596633255999999\n// 获取纳秒精度时间戳\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").TimestampNano() // 1596633255999999999\n\n// 获取时区位置\ncarbon.SetTimezone(carbon.PRC).Timezone() // PRC\ncarbon.SetTimezone(carbon.Tokyo).Timezone() // Asia/Tokyo\n\n// 获取时区名称\ncarbon.SetTimezone(carbon.PRC).ZoneName() // CST\ncarbon.SetTimezone(carbon.Tokyo).ZoneName() // JST\n\n// 获取时区偏移量，单位秒\ncarbon.SetTimezone(carbon.PRC).ZoneOffset() // 28800\ncarbon.SetTimezone(carbon.Tokyo).ZoneOffset() // 32400\n\n// 获取当前区域\ncarbon.Now().Locale() // zh-CN\ncarbon.Now().SetLocale(\"en\").Locale() // en\n\n// 获取当前星座\ncarbon.Now().Constellation() // 狮子座\ncarbon.Now().SetLocale(\"en\").Constellation() // Leo\ncarbon.Now().SetLocale(\"zh-CN\").Constellation() // 狮子座\n\n// 获取当前季节\ncarbon.Now().Season() // 夏季\ncarbon.Now().SetLocale(\"en\").Season() // Summer\ncarbon.Now().SetLocale(\"zh-CN\").Season() // 夏季\n\n// 获取一周的开始日期\ncarbon.SetWeekStartsAt(carbon.Sunday).WeekStartsAt() // Sunday\ncarbon.SetWeekStartsAt(carbon.Monday).WeekStartsAt() // Monday\n\n// 获取一周的结束日期\ncarbon.SetWeekStartsAt(carbon.Sunday).WeekEndsAt() // Saturday\ncarbon.SetWeekStartsAt(carbon.Monday).WeekEndsAt() // Sunday\n\n// 获取当前布局模板\ncarbon.Parse(\"now\").CurrentLayout() // \"2006-01-02 15:04:05\"\ncarbon.ParseByLayout(\"2020-08-05\", DateLayout).CurrentLayout() // \"2006-01-02\"\n\n// 获取年龄\ncarbon.Parse(\"2002-01-01 13:14:15\").Age() // 17\ncarbon.Parse(\"2002-12-31 13:14:15\").Age() // 18\n```\n\n##### 时间输出\n\n```go\n// 输出日期时间字符串\ncarbon.Parse(\"2020-08-05T13:14:15.999999999+08:00\").ToDateTimeString() // 2020-08-05 13:14:15\n// 输出日期时间字符串，包含毫秒\ncarbon.Parse(\"2020-08-05T13:14:15.999999999+08:00\").ToDateTimeMilliString() // 2020-08-05 13:14:15.999\n// 输出日期时间字符串，包含微秒\ncarbon.Parse(\"2020-08-05T13:14:15.999999999+08:00\").ToDateTimeMicroString() // 2020-08-05 13:14:15.999999\n// 输出日期时间字符串，包含纳秒\ncarbon.Parse(\"2020-08-05T13:14:15.999999999+08:00\").ToDateTimeNanoString() // 2020-08-05 13:14:15.999999999\n\n// 输出简写日期时间字符串\ncarbon.Parse(\"2020-08-05T13:14:15.999999999+08:00\").ToShortDateTimeString() // 20200805131415\n// 输出简写日期时间字符串，包含毫秒\ncarbon.Parse(\"2020-08-05T13:14:15.999999999+08:00\").ToShortDateTimeMilliString() // 20200805131415.999\n// 输出简写日期时间字符串，包含微秒\ncarbon.Parse(\"2020-08-05T13:14:15.999999999+08:00\").ToShortDateTimeMicroString() // 20200805131415.999999\n// 输出简写日期时间字符串，包含纳秒\ncarbon.Parse(\"2020-08-05T13:14:15.999999999+08:00\").ToShortDateTimeNanoString() // 20200805131415.999999999\n\n// 输出日期字符串\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToDateString() // 2020-08-05\n// 输出日期字符串，包含毫秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToDateMilliString() // 2020-08-05.999\n// 输出日期字符串，包含微秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToDateMicroString() // 2020-08-05.999999\n// 输出日期字符串，包含纳秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToDateNanoString() // 2020-08-05.999999999\n\n// 输出简写日期字符串\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToShortDateString() // 20200805\n// 输出简写日期字符串，包含毫秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToShortDateMilliString() // 20200805.999\n// 输出简写日期字符串，包含微秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToShortDateMicroString() // 20200805.999999\n// 输出简写日期字符串，包含纳秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToShortDateNanoString() // 20200805.999999999\n\n// 输出时间字符串\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToTimeString() // 13:14:15\n// 输出时间字符串，包含毫秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToTimeMilliString() // 13:14:15.999\n// 输出时间字符串，包含微秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToTimeMicroString() // 13:14:15.999999\n// 输出时间字符串，包含纳秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToTimeNanoString() // 13:14:15.999999999\n\n// 输出简写时间字符串\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToShortTimeString() // 131415\n// 输出简写时间字符串，包含毫秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToShortTimeMilliString() // 131415.999\n// 输出简写时间字符串，包含微秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToShortTimeMicroString() // 131415.999999\n// 输出简写时间字符串，包含纳秒\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToShortTimeNanoString() // 131415.999999999\n\n// 输出 Ansic 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToAnsicString() // Wed Aug  5 13:14:15 2020\n// 输出 Atom 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToAtomString() // 2020-08-05T13:14:15+08:00\n// 输出 UnixDate 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToUnixDateString() // Wed Aug  5 13:14:15 CST 2020\n// 输出 RubyDate 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToRubyDateString() // Wed Aug 05 13:14:15 +0800 2020\n// 输出 Kitchen 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToKitchenString() // 1:14PM\n// 输出 Cookie 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToCookieString() // Wednesday, 05-Aug-2020 13:14:15 CST\n// 输出 DayDateTime 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToDayDateTimeString() // Wed, Aug 5, 2020 1:14 PM\n// 输出 RSS 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToRssString() // Wed, 05 Aug 2020 13:14:15 +0800\n// 输出 W3C 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToW3cString() // 2020-08-05T13:14:15+08:00\n\n// 输出 ISO8601 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToIso8601String() // 2020-08-05T13:14:15+08:00\n// 输出 ISO8601Milli 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToIso8601MilliString() // 2020-08-05T13:14:15.999+08:00\n// 输出 ISO8601Micro 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToIso8601MicroString() // 2020-08-05T13:14:15.999999+08:00\n// 输出 ISO8601Nano 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToIso8601NanoString() // 2020-08-05T13:14:15.999999999+08:00\n// 输出 ISO8601Zulu 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToIso8601ZuluString() // 2020-08-05T13:14:15Z\n// 输出 ISO8601ZuluMilli 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToIso8601ZuluMilliString() // 2020-08-05T13:14:15.999Z\n// 输出 ISO8601ZuluMicro 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToIso8601ZuluMicroString() // 2020-08-05T13:14:15.999999Z\n// 输出 ISO8601ZuluNano 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15.999999999\").ToIso8601ZuluNanoString() // 2020-08-05T13:14:15.999999999Z\n\n// 输出 RFC822 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToRfc822String() // 05 Aug 20 13:14 CST\n// 输出 RFC822Z 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToRfc822zString() // 05 Aug 20 13:14 +0800\n// 输出 RFC850 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToRfc850String() // Wednesday, 05-Aug-20 13:14:15 CST\n// 输出 RFC1036 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToRfc1036String() // Wed, 05 Aug 20 13:14:15 +0800\n// 输出 RFC1123 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToRfc1123String() // Wed, 05 Aug 2020 13:14:15 CST\n// 输出 RFC1123Z 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToRfc1123zString() // Wed, 05 Aug 2020 13:14:15 +0800\n// 输出 RFC2822 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToRfc2822String() // Wed, 05 Aug 2020 13:14:15 +0800\n// 输出 RFC7231 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToRfc7231String() // Wed, 05 Aug 2020 13:14:15 CST\n\n// 输出 RFC3339 格式字符串\ncarbon.Parse(\"2020-08-05T13:14:15.999999999+08:00\").ToRfc3339String() // 2020-08-05T13:14:15+08:00\n// 输出 RFC3339Milli 格式字符串\ncarbon.Parse(\"2020-08-05T13:14:15.999999999+08:00\").ToRfc3339MilliString() // 2020-08-05T13:14:15.999+08:00\n// 输出 RFC3339Micro 格式字符串\ncarbon.Parse(\"2020-08-05T13:14:15.999999999+08:00\").ToRfc3339MicroString() // 2020-08-05T13:14:15.999999+08:00\n// 输出 RFC3339Nano 格式字符串\ncarbon.Parse(\"2020-08-05T13:14:15.999999999+08:00\").ToRfc3339NanoString() // 2020-08-05T13:14:15.999999999+08:00\n\n// 输出日期时间字符串\nfmt.Printf(\"%s\", carbon.Parse(\"2020-08-05 13:14:15\")) // 2020-08-05 13:14:15\n\n// 输出\"2006-01-02 15:04:05.999999999 -0700 MST\"格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToString() // 2020-08-05 13:14:15.999999 +0800 CST\n\n// 输出 \"Jan 2, 2006\" 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToFormattedDateString() // Aug 5, 2020\n// 输出 \"Mon, Jan 2, 2006\" 格式字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").ToFormattedDayDateString() // Wed, Aug 5, 2020\n\n// 输出指定布局的字符串\ncarbon.Parse(\"2020-08-05 13:14:15\").Layout(carbon.ISO8601Layout) // 2020-08-05T13:14:15+08:00\ncarbon.Parse(\"2020-08-05 13:14:15\").Layout(\"20060102150405\") // 20200805131415\ncarbon.Parse(\"2020-08-05 13:14:15\").Layout(\"2006年01月02日 15时04分05秒\") // 2020年08月05日 13时14分15秒\ncarbon.Parse(\"2020-08-05 13:14:15\").Layout(\"It is 2006-01-02 15:04:05\") // It is 2020-08-05 13:14:15\n\n// 输出指定格式的字符串(如果使用的字母与格式符号冲突时，请使用\\符号转义该字符)\ncarbon.Parse(\"2020-08-05 13:14:15\").Format(\"YmdHis\") // 20200805131415\ncarbon.Parse(\"2020-08-05 13:14:15\").Format(\"Y年m月d日 H时i分s秒\") // 2020年08月05日 13时14分15秒\ncarbon.Parse(\"2020-08-05 13:14:15\").Format(\"l jK \\\\o\\\\f F Y h:i:s A\") // Wednesday 5th of August 2020 01:14:15 PM\ncarbon.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\n```\n\n\u003e 更多格式输出符号请查看附录 \u003ca href=\"#format-sign-table\"\u003e格式化符号表\u003c/a\u003e\n\n##### 星座\n\n```go\n// 获取星座\ncarbon.Parse(\"2020-08-05 13:14:15\").Constellation() // 狮子座\n\n// 是否是白羊座\ncarbon.Parse(\"2020-08-05 13:14:15\").IsAries() // false\n// 是否是金牛座\ncarbon.Parse(\"2020-08-05 13:14:15\").IsTaurus() // false\n// 是否是双子座\ncarbon.Parse(\"2020-08-05 13:14:15\").IsGemini() // false\n// 是否是巨蟹座\ncarbon.Parse(\"2020-08-05 13:14:15\").IsCancer() // false\n// 是否是狮子座\ncarbon.Parse(\"2020-08-05 13:14:15\").IsLeo() // true\n// 是否是处女座\ncarbon.Parse(\"2020-08-05 13:14:15\").IsVirgo() // false\n// 是否是天秤座\ncarbon.Parse(\"2020-08-05 13:14:15\").IsLibra() // false\n// 是否是天蝎座\ncarbon.Parse(\"2020-08-05 13:14:15\").IsScorpio() // false\n// 是否是射手座\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSagittarius() // false\n// 是否是摩羯座\ncarbon.Parse(\"2020-08-05 13:14:15\").IsCapricorn() // false\n// 是否是水瓶座\ncarbon.Parse(\"2020-08-05 13:14:15\").IsAquarius() // false\n// 是否是双鱼座\ncarbon.Parse(\"2020-08-05 13:14:15\").IsPisces() // false\n```\n\n##### 季节\n\n\u003e 按照气象划分，即3-5月为春季，6-8月为夏季，9-11月为秋季，12-2月为冬季\n\n```go\n// 获取季节\ncarbon.Parse(\"2020-08-05 13:14:15\").Season() // 夏季\n\n// 本季节开始时间\ncarbon.Parse(\"2020-08-05 13:14:15\").StartOfSeason().ToDateTimeString() // 2020-06-01 00:00:00\n// 本季节结束时间\ncarbon.Parse(\"2020-08-05 13:14:15\").EndOfSeason().ToDateTimeString() // 2020-08-31 23:59:59\n\n// 是否是春季\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSpring() // false\n// 是否是夏季\ncarbon.Parse(\"2020-08-05 13:14:15\").IsSummer() // true\n// 是否是秋季\ncarbon.Parse(\"2020-08-05 13:14:15\").IsAutumn() // false\n// 是否是冬季\ncarbon.Parse(\"2020-08-05 13:14:15\").IsWinter() // false\n```\n\n##### JSON\n\n###### 内置字段类型\n\n```go\ntype User struct {\n  Date      *carbon.Date      `json:\"date\"`\n  DateMilli *carbon.DateMilli `json:\"date_milli\"`\n  DateMicro *carbon.DateMicro `json:\"date_micro\"`\n  DateNano  *carbon.DateNano  `json:\"date_nano\"`\n  \n  Time      *carbon.Time      `json:\"time\"`\n  TimeMilli *carbon.TimeMilli `json:\"time_milli\"`\n  TimeMicro *carbon.TimeMicro `json:\"time_micro\"`\n  TimeNano  *carbon.TimeNano  `json:\"time_nano\"`\n  \n  DateTime      *carbon.DateTime      `json:\"date_time\"`\n  DateTimeMilli *carbon.DateTimeMilli `json:\"date_time_milli\"`\n  DateTimeMicro *carbon.DateTimeMicro `json:\"date_time_micro\"`\n  DateTimeNano  *carbon.DateTimeNano  `json:\"date_time_nano\"`\n  \n  Timestamp      *carbon.Timestamp      `json:\"timestamp\"`\n  TimestampMilli *carbon.TimestampMilli `json:\"timestamp_milli\"`\n  TimestampMicro *carbon.TimestampMicro `json:\"timestamp_micro\"`\n  TimestampNano  *carbon.TimestampNano  `json:\"timestamp_nano\"`\n\n  CreatedAt *carbon.DateTime `json:\"created_at\"`\n  UpdatedAt *carbon.DateTime `json:\"updated_at\"`\n  DeletedAt *carbon.Timestamp `json:\"deleted_at\"`\n}\n\nvar user User\n\nc := carbon.Parse(\"2020-08-05 13:14:15.999999999\")\n\nuser.Date      = carbon.NewDate(c)\nuser.DateMilli = carbon.NewDateMilli(c)\nuser.DateMicro = carbon.NewDateMicro(c)\nuser.DateNano  = carbon.NewDateNano(c)\n\nuser.Time      = carbon.NewTime(c)\nuser.TimeMilli = carbon.NewTimeMilli(c)\nuser.TimeMicro = carbon.NewTimeMicro(c)\nuser.TimeNano  = carbon.NewTimeNano(c)\n\nuser.DateTime      = carbon.NewDateTime(c)\nuser.DateTimeMilli = carbon.NewDateTimeMilli(c)\nuser.DateTimeMicro = carbon.NewDateTimeMicro(c)\nuser.DateTimeNano  = carbon.NewDateTimeNano(c)\n\nuser.Timestamp      = carbon.NewTimestamp(c)\nuser.TimestampMilli = carbon.NewTimestampMilli(c)\nuser.TimestampMicro = carbon.NewTimestampMicro(c)\nuser.TimestampNano  = carbon.NewTimestampNano(c)\n\nuser.CreatedAt = carbon.NewDateTime(c)\nuser.UpdatedAt = carbon.NewDateTime(c)\nuser.DeletedAt = carbon.NewTimestamp(c)\n\ndata, err := json.Marshal(\u0026user)\nif err != nil {\n  // 错误处理\n  log.Fatal(err)\n}\nfmt.Printf(\"%s\\n\", data)\n// 输出\n{\n  \"date\": \"2020-08-05\",\n  \"date_milli\": \"2020-08-05.999\",\n  \"date_micro\": \"2020-08-05.999999\",\n  \"date_nano\": \"2020-08-05.999999999\",\n  \"time\": \"13:14:15\",\n  \"time_milli\": \"13:14:15.999\",\n  \"time_micro\": \"13:14:15.999999\",\n  \"time_nano\": \"13:14:15.999999999\",\n  \"date_time\": \"2020-08-05 13:14:15\",\n  \"date_time_milli\": \"2020-08-05 13:14:15.999\",\n  \"date_time_micro\": \"2020-08-05 13:14:15.999999\",\n  \"date_time_nano\": \"2020-08-05 13:14:15.999999999\",\n  \"timestamp\": 1596633255,\n  \"timestamp_milli\": 1596633255999,\n  \"timestamp_micro\": 1596633255999999,\n  \"timestamp_nano\": 1596633255999999999,\n  \"created_at\": \"2020-08-05 13:14:15\",\n  \"updated_at\": \"2020-08-05 13:14:15\",\n  \"deleted_at\": 1596633255\n}\n\nvar person User\nerr := json.Unmarshal(data, \u0026person)\nif err != nil {\n  // 错误处理\n  log.Fatal(err)\n}\n\nfmt.Printf(\"person: %+v\\n\", person)\n// 输出\nperson: {Date:2020-08-05 DateMilli:2020-08-05.999 DateMicro:2020-08-05.999999 DateNano:2020-08-05.999999999 Time:13:14:15 TimeMilli:13:14:15.999 TimeMicro:13:14:15.999999 TimeNano:13:14:15.999999999 DateTime:2020-08-05 13:14:15 DateTimeMilli:2020-08-05 13:14:15.999 DateTimeMicro:2020-08-05 13:14:15.999999 DateTimeNano:2020-08-05 13:14:15.999999999 Timestamp:1596633255 TimestampMilli:1596633255999 TimestampMicro:1596633255999999 TimestampNano:1596633255999999999 CreatedAt:2020-08-05 13:14:15 UpdatedAt:2020-08-05 13:14:15 DeletedAt:1596633255}\n```\n\n###### 自定义字段类型\n\n```go\ntype RFC3339Type string\nfunc (t RFC3339Type) Layout() string {\n  return carbon.RFC3339Layout\n}\n\ntype ISO8601Type string\nfunc (t ISO8601Type) Format() string {\n  return carbon.ISO8601Format\n}\n\ntype User struct {\n  Customer1 *carbon.LayoutType[RFC3339Type] `json:\"customer1\"`\n  Customer2 *carbon.FormatType[ISO8601Type] `json:\"customer2\"`\n}\n\nvar user User\n\nc := carbon.Parse(\"2020-08-05 13:14:15\")\n\nuser.Customer1 = carbon.NewLayoutType[RFC3339Type](c)\nuser.Customer2 = carbon.NewFormatType[ISO8601Type](c)\n\ndata, err := json.Marshal(\u0026user)\nif err != nil {\n  // 错误处理 \n  //log.Fatal(err)\n}\nfmt.Printf(\"%s\\n\", data)\n// 输出\n{\"customer1\":\"2020-08-05T13:14:15Z\", \"customer2\":\"2020-08-05T13:14:15+00:00\"}\n\nvar person User\nerr := json.Unmarshal(data, \u0026person)\nif err != nil {\n  // 错误处理\n  log.Fatal(err)\n}\n\nfmt.Printf(\"person: %+v\\n\", person)\n// 输出\nperson: {Customer1:2020-08-05T13:14:15Z Customer2:2020-08-05T13:14:15+00:00}\n```\n\n##### 日历\n\n目前支持的日历有\n\n* [儒略日/简化儒略日](./calendar/julian/README.cn.md \"儒略日/简化儒略日\")\n* [中国农历](./calendar/lunar/README.cn.md \"中国农历\")\n* [波斯历/伊朗历](./calendar/persian/README.cn.md \"波斯历/伊朗历\")\n\n##### 国际化\n\n目前支持的语言有(按照翻译先后顺序排列)\n\n* [简体中文(zh-CN)](./lang/zh-CN.json \"简体中文\"): 由 [gouguoyin](https://github.com/gouguoyin \"gouguoyin\") 翻译\n* [繁体中文(zh-TW)](./lang/zh-TW.json \"繁体中文\"): 由 [gouguoyin](https://github.com/gouguoyin \"gouguoyin\") 翻译\n* [英语(en)](./lang/en.json \"英语\"): 由 [gouguoyin](https://github.com/gouguoyin \"gouguoyin\") 翻译\n* [日语(jp)](./lang/jp.json \"日语\"): 由 [gouguoyin](https://github.com/gouguoyin \"gouguoyin\") 翻译\n* [韩语(kr)](./lang/kr.json \"韩语\"): 由 [nannul](https://github.com/nannul \"nannul\") 翻译\n* [德语(de)](./lang/de.json \"德语\"): 由 [benzammour](https://github.com/benzammour \"benzammour\") 翻译\n* [西班牙语(es)](./lang/es.json \"西班牙语\"): 由 [hgisinger](https://github.com/hgisinger \"hgisinger\") 翻译\n* [土耳其语(tr)](./lang/tr.json \"土耳其语\"): 由 [emresenyuva](https://github.com/emresenyuva \"emresenyuva\") 翻译\n* [葡萄牙语(pt)](./lang/pt.json \"葡萄牙语\"): 由 [felipear89](https://github.com/felipear89 \"felipear89\") 翻译\n* [俄罗斯语(ru)](./lang/ru.json \"俄罗斯语\"): 由 [zemlyak](https://github.com/zemlyak \"zemlyak\") 翻译\n* [乌克兰语(uk)](./lang/uk.json \"乌克兰语\"): 由 [open-git](https://github.com/open-git \"open-git\") 翻译\n* [罗马尼亚语(ro)](./lang/ro.json \"罗马尼亚语\"): 由 [DrOctavius](https://github.com/DrOctavius \"DrOctavius\") 翻译\n* [印度尼西亚语(id)](./lang/id.json \"印度尼西亚语\"): 由 [justpoypoy](https://github.com/justpoypoy \"justpoypoy\") 翻译\n* [意大利语(it)](./lang/it.json \"意大利语\"): 由 [nicoloHevelop](https://github.com/justpoypoy \"nicoloHevelop\") 翻译\n* [马来西亚巴哈马语(ms-MY)](./lang/ms-MY.json \"马来西亚巴哈马语\"):\n\t由 [hollowaykeanho](https://github.com/hollowaykeanho \"hollowaykeanho\") 翻译\n* [法语(fr)](./lang/fr.json \"法语\"): 由 [hollowaykeanho](https://github.com/hollowaykeanho \"hollowaykeanho\") 翻译\n* [泰语(th)](./lang/th.json \"泰语\"): 由 [izcream](https://github.com/izcream \"izcream\") 翻译\n* [瑞典语(se)](./lang/se.json \"瑞典语\"): 由 [jwanglof](https://github.com/jwanglof \"jwanglof\") 翻译\n* [波斯语(fa)](./lang/fa.json \"波斯语\"): 由 [erfanMomeniii](https://github.com/ErfanMomeniii \"ErfanMomeniii\") 翻译\n* [波兰语(nl)](./lang/nl.json \"波兰语\"): 由 [RemcoE33](https://github.com/RemcoE33 \"RemcoE33\") 翻译\n* [越南语(vi)](./lang/vi.json \"越南语\"): 由 [culy247](https://github.com/culy247 \"culy247\") 翻译\n* [印地语(hi)](./lang/hi.json \"印地语\"): 由 [chauhan17nitin](https://github.com/chauhan17nitin \"chauhan17nitin\") 翻译\n* [波兰语(pl)](./lang/pl.json \"波兰语\"): 由 [gouguoyin](https://github.com/gouguoyin \"gouguoyin\") 翻译\n* [保加利亚语(bg)](./lang/bg.json \"保加利亚语\"): 由 [yuksbg](https://github.com/yuksbg \"yuksbg\") 翻译\n* [阿拉伯语(ar)](./lang/bg.json \"阿拉伯语\"): 由 [zumoshi](https://github.com/zumoshi \"zumoshi\") 翻译\n* [匈牙利语(hu)](./lang/hu.json \"匈牙利语\"): 由 [kenlas](https://github.com/kenlas \"kenlas\") 翻译\n* [丹麦语(dk)](./lang/dk.json \"丹麦语\"): 由 [Munk91](https://github.com/Munk91 \"Munk91\") 翻译\n* [挪威语(nb)](./lang/nb.json \"挪威语\"): 由 [bendikrb](https://github.com/bendikrb \"bendikrb\") 翻译\n\n目前支持的方法有\n\n* `Constellation()`：获取星座，如 `白羊座`\n* `Season()`：获取季节，如 `夏季`\n* `DiffForHumans()`：获取对人类友好的可读格式时间差，如 `一小时前`\n* `ToMonthString()`：输出完整月份字符串，如 `一月`\n* `ToShortMonthString()`：输出缩写月份字符串，如 `1月`\n* `ToWeekString()`：输出完整星期字符串，如 `星期一`\n* `ToShortWeekString()`：输出缩写星期字符串，如 `周一`\n\n###### 设置区域\n\n```go\nlang := carbon.NewLanguage()\nlang.SetLocale(\"zh-CN\")\n\ncarbon.SetTestNow(carbon.Parse(\"2020-08-05 13:14:15\"))\nnow := carbon.Now().SetLanguage(lang)\n\nnow.Copy().AddHours(1).DiffForHumans() // 1 小时后\nnow.Copy().AddHours(1).ToMonthString() // 八月\nnow.Copy().AddHours(1).ToShortMonthString() // 8月\nnow.Copy().AddHours(1).ToWeekString() // 星期二\nnow.Copy().AddHours(1).ToShortWeekString() // 周二\nnow.Copy().AddHours(1).Constellation() // 狮子座\nnow.Copy().AddHours(1).Season() // 夏季\n```\n\n###### 重写部分翻译资源(其余仍然按照指定的 `locale` 文件内容翻译)\n\n```go\nlang := carbon.NewLanguage()\n\nresources := map[string]string {\n\t\"hour\": \"%dh\",\n}\nlang.SetLocale(\"en\").SetResources(resources)\n\ncarbon.SetTestNow(carbon.Parse(\"2020-08-05 13:14:15\"))\nnow := carbon.Now().SetLanguage(lang)\n\nnow.Copy().AddYears(1).DiffForHumans() // 1 year from now\nnow.Copy().AddHours(1).DiffForHumans() // 1h from now\nnow.Copy().ToMonthString() // August\nnow.Copy().ToShortMonthString() // Aug\nnow.Copy().ToWeekString() // Tuesday\nnow.Copy().ToShortWeekString() // Tue\nnow.Copy().Constellation() // Leo\nnow.Copy().Season() // Summer\n```\n\n###### 重写全部翻译资源(无需指定 `locale`)\n\n```go\nlang := carbon.NewLanguage()\nresources := map[string]string {\n  \"months\": \"january|february|march|april|may|june|july|august|september|october|november|december\",\n  \"short_months\": \"jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec\",\n  \"weeks\": \"sunday|monday|tuesday|wednesday|thursday|friday|saturday\",\n  \"short_weeks\": \"sun|mon|tue|wed|thu|fri|sat\",\n  \"seasons\": \"spring|summer|autumn|winter\",\n  \"constellations\": \"aries|taurus|gemini|cancer|leo|virgo|libra|scorpio|sagittarius|capricornus|aquarius|pisce\",\n  \"year\": \"1 yr|%d yrs\",\n  \"month\": \"1 mo|%d mos\",\n  \"week\": \"%dw\",\n  \"day\": \"%dd\",\n  \"hour\": \"%dh\",\n  \"minute\": \"%dm\",\n  \"second\": \"%ds\",\n  \"now\": \"just now\",\n  \"ago\": \"%s ago\",\n  \"from_now\": \"in %s\",\n  \"before\": \"%s before\",\n  \"after\": \"%s after\",\n}\nlang.SetResources(resources)\n\ncarbon.SetTestNow(carbon.Parse(\"2020-08-05 13:14:15\"))\nnow := carbon.Now().SetLanguage(lang)\n\nnow.Copy().AddYears(1).DiffForHumans() // in 1 yr\nnow.Copy().AddHours(1).DiffForHumans() // in 1h\nnow.Copy().ToMonthString() // august\nnow.Copy().ToShortMonthString() // aug\nnow.Copy().ToWeekString() // tuesday\nnow.Copy().ToShortWeekString() // tue\nnow.Copy().Constellation() // leo\nnow.Copy().Season() // summer\n```\n\n##### 错误处理\n\n```go\nc := carbon.Parse(\"2020-08-05\").SetTimezone(\"xxx\")\nif c.HasError() {\n  // 错误处理\n  log.Fatal(c.Error)\n}\n// 输出\ntimezone \"xxx\" is invalid, please see the file \"$GOROOT/lib/time/zoneinfo.zip\" for all valid timezones\n```\n\n#### 附录\n\n##### \u003ca id=\"format-sign-table\"\u003e格式符号表\u003c/a\u003e\n\n| 符号 |             描述             | 长度 |        范围        |         示例          |\n|:--:|:--------------------------:|:--:|:----------------:|:-------------------:|\n| d  |        月份中的第几天，有前导零        | 2  |      01-31       |         02          |\n| D  |         缩写单词表示的周几          | 3  |     Mon-Sun      |         Mon         |\n| j  |       月份中的第几天，没有前导零        | -  |       1-31       |          2          |\n| K  |    第几天的英文缩写后缀，一般和j配合使用     | 2  |   st/nd/rd/th    |         th          |\n| l  |         完整单词表示的周几          | -  |  Monday-Sunday   |       Monday        |\n| F  |         完整单词表示的月份          | -  | January-December |       January       |\n| m  |        数字表示的月份，有前导零        | 2  |      01-12       |         01          |\n| M  |         缩写单词表示的月份          | 3  |     Jan-Dec      |         Jan         |\n| n  |       数字表示的月份，没有前导零        | -  |       1-12       |          1          |\n| Y  |        4 位数字完整表示的年份        | 4  |    0000-9999     |        2006         |\n| y  |         2 位数字表示的年份         | 2  |      00-99       |         06          |\n| a  |         小写的上午和下午标识         | 2  |      am/pm       |         pm          |\n| A  |         大写的上午和下午标识         | 2  |      AM/PM       |         PM          |\n| g  |         小时，12 小时格式         | -  |       1-12       |          3          |\n| G  |         小时，24 小时格式         | -  |       0-23       |         15          |\n| h  |         小时，12 小时格式         | 2  |      00-11       |         03          |\n| H  |         小时，24 小时格式         | 2  |      00-23       |         15          |\n| i  |             分钟             | 2  |      01-59       |         04          |\n| s  |             秒数             | 2  |      01-59       |         05          |\n| O  |       与格林威治时间相差的小时数        | -  |        -         |        -0700        |\n| P  | 与格林威治时间相差的小时数，小时和分钟之间有冒号分隔 | -  |        -         |       -07:00        |\n| Z  |            时区名字            | -  |        -         |         CST         |\n| W  |   ISO8601 格式数字表示的年份中的第几周   | 2  |      01-52       |         01          |\n| N  |   ISO8601 格式数字表示的星期中的第几天   | 2  |      01-07       |         02          |\n| L  |    是否为闰年，如果是闰年为 1，否则为 0    | 1  |       0-1        |          0          |\n| S  |           秒精度时间戳            | -  |        -         |     1596604455      |\n| U  |           毫精度时间戳            | -  |        -         |    1596604455666    |\n| V  |           微精度时间戳            | -  |        -         |  1596604455666666   |\n| X  |           纳精度时间戳            | -  |        -         | 1596604455666666666 |\n| u  |             毫秒             | -  |      1-999       |         999         |\n| v  |             微秒             | -  |     1-999999     |       999999        |\n| x  |             纳秒             | -  |   1-999999999    |      999999999      |\n| w  |          数字表示的周几           | 1  |       0-6        |          1          |\n| t  |          月份中的总天数           | 2  |      28-31       |         31          |\n| z  |            时区位置            | -  |        -         |    Asia/Shanghai    |\n| o  |           时区偏移量            | -  |        -         |        28800        |\n| q  |            当前季节            | 1  |       1-4        |          1          |\n| c  |           当前世纪数            | -  |       0-99       |         21          |\n\n#### 常见问题\n\n1、v2.5.x 和 v2.6.x 版本有什么区别？\n\u003e `v2.5.x` 及以下版本是`值`传递， `v2.6.x` 及以上版本是`指针`传递，强烈建议使用 v2.6.x 及以上版本。\n\n2、window 系统部署时时区报错\n\n\u003e `window` 系统如果没有安装 `golang` 环境，部署时会报 `GOROOT/lib/time/zoneinfo.zip: no such file or directory` 异常，原因是由于\n\u003e `window` 系统没有内置时区文件，只需要手动下载并指定 `zoneinfo.zip` 路径即可，如 `go/lib/time/zoneinfo.zip`\n\n```go\nos.Setenv(\"ZONEINFO\", \"./go/lib/time/zoneinfo.zip\")\n```\n\n3、docker 容器部署时时区报错\n\n\u003e `docker` 容器如果没有安装 `golang` 环境，部署时会报 `open /usr/local/go/lib/time/zoneinfo.zip: no such file or directory`\n\u003e 异常，只需要把 `zoneinfo.zip` 复制到容器中即可，即在 `Dockerfile` 中加入\n\n```go\nCOPY ./zoneinfo.zip /usr/local/go /lib/time/zoneinfo.zip\n```\n\n#### 参考项目\n\n* [briannesbitt/carbon](https://github.com/briannesbitt/Carbon)\n* [nodatime/nodatime](https://github.com/nodatime/nodatime)\n* [jinzhu/now](https://github.com/jinzhu/now)\n* [goframe/gtime](https://github.com/gogf/gf/tree/master/os/gtime)\n* [jodaOrg/joda-time](https://github.com/jodaOrg/joda-time)\n* [arrow-py/arrow](https://github.com/arrow-py/arrow)\n* [moment/moment](https://github.com/moment/moment)\n* [iamkun/dayjs](https://github.com/iamkun/dayjs)\n\n#### 贡献者\n\n感谢以下所有为 `Carbon` 做出贡献的人：\n\n\u003ca href=\"https://github.com/dromara/carbon/graphs/contributors\"\u003e\u003cimg src=\"https://contrib.rocks/image?repo=dromara/carbon\u0026max=100\u0026columns=16\"/\u003e\u003c/a\u003e\n\n#### 赞助\n\n`Carbon` 是一个非商业开源项目, 如果你想支持 `Carbon`,\n你可以为开发者 [购买一杯咖啡](https://www.gouguoyin.com/zanzhu.html)\n\n#### 致谢\n\n`Carbon`已获取免费的 JetBrains 开源许可证，在此表示感谢\n\n\u003ca href=\"https://www.jetbrains.com\"\u003e\u003cimg src=\"https://foruda.gitee.com/images/1704325523163241662/1bf21f86_544375.png\" height=\"100\" alt=\"JetBrains\"/\u003e\u003c/a\u003e\n","funding_links":["https://opencollective.com/go-carbon","https://www.gouguoyin.com/zanzhu.html"],"categories":["Date and Time","Go","日期和时间"],"sub_categories":["Search and Analytic Databases","检索及分析资料库"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdromara%2Fcarbon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdromara%2Fcarbon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdromara%2Fcarbon/lists"}