diff --git a/README.cn.md b/README.cn.md index 5c90698d..cbfdbe87 100755 --- a/README.cn.md +++ b/README.cn.md @@ -74,13 +74,12 @@ carbon.Now(Carbon.NewYork).ToDateTimeString() // 2020-08-05 14:14:15 carbon.SetTimezone(Carbon.NewYork).Now().ToDateTimeString() // 2020-08-05 14:14:15 // 今天秒级时间戳 carbon.Now().Timestamp() // 1596604455 -carbon.Now().TimestampWithSecond() // 1596604455 // 今天毫秒级时间戳 -carbon.Now().TimestampWithMillisecond() // 1596604455000 +carbon.Now().TimestampMilli() // 1596604455000 // 今天微秒级时间戳 -carbon.Now().TimestampWithMicrosecond() // 1596604455000000 +carbon.Now().TimestampMicro() // 1596604455000000 // 今天纳秒级时间戳 -carbon.Now().TimestampWithNanosecond() // 1596604455000000000 +carbon.Now().TimestampNano() // 1596604455000000000 // 昨天此刻 fmt.Sprintf("%s", carbon.Yesterday()) // 2020-08-04 13:14:15 @@ -96,13 +95,12 @@ carbon.Yesterday(Carbon.NewYork).ToDateTimeString() // 2020-08-04 14:14:15 carbon.SetTimezone(Carbon.NewYork).Yesterday().ToDateTimeString() // 2020-08-04 14:14:15 // 昨天秒级时间戳 carbon.Yesterday().Timestamp() // 1596518055 -carbon.Yesterday().TimestampWithSecond() // 1596518055 // 昨天毫秒级时间戳 -carbon.Yesterday().TimestampWithMillisecond() // 1596518055000 +carbon.Yesterday().TimestampMilli() // 1596518055000 // 昨天微秒级时间戳 -carbon.Yesterday().TimestampWithMicrosecond() // 1596518055000000 +carbon.Yesterday().TimestampMicro() // 1596518055000000 // 昨天纳秒级时间戳 -carbon.Yesterday().TimestampWithNanosecond() // 1596518055000000000 +carbon.Yesterday().TimestampNano() // 1596518055000000000 // 明天此刻 fmt.Sprintf("%s", carbon.Tomorrow()) // 2020-08-06 13:14:15 @@ -118,38 +116,49 @@ carbon.Tomorrow(Carbon.NewYork).ToDateTimeString() // 2020-08-06 14:14:15 carbon.SetTimezone(Carbon.NewYork).Tomorrow().ToDateTimeString() // 2020-08-06 14:14:15 // 明天秒级时间戳 carbon.Tomorrow().Timestamp() // 1596690855 -carbon.Tomorrow().TimestampWithSecond() // 1596690855 // 明天毫秒级时间戳 -carbon.Tomorrow().TimestampWithMillisecond() // 1596690855000 +carbon.Tomorrow().TimestampMilli() // 1596690855000 // 明天微秒级时间戳 -carbon.Tomorrow().TimestampWithMicrosecond() // 1596690855000000 +carbon.Tomorrow().TimestampMicro() // 1596690855000000 // 明天纳秒级时间戳 -carbon.Tomorrow().TimestampWithNanosecond() // 1596690855000000000 +carbon.Tomorrow().TimestampNano() // 1596690855000000000 ``` ##### 创建 Carbon 实例 ```go // 从秒级时间戳创建 Carbon 实例 -carbon.CreateFromTimestamp(-1).ToDateTimeString() // 1970-01-01 07:59:59 -carbon.CreateFromTimestamp(-1, carbon.Tokyo).ToDateTimeString() // 1970-01-01 08:59:59 -carbon.CreateFromTimestamp(0).ToDateTimeString() // 1970-01-01 08:00:00 -carbon.CreateFromTimestamp(0, carbon.Tokyo).ToDateTimeString() // 1970-01-01 09:00:00 -carbon.CreateFromTimestamp(1596604455).ToDateTimeString() // 2020-08-05 13:14:15 -carbon.CreateFromTimestamp(1596604455, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +carbon.CreateFromTimestamp(-1).ToString() // 1970-01-01 07:59:59 +0800 CST +carbon.CreateFromTimestamp(-1, carbon.Tokyo).ToString() // 1970-01-01 08:59:59 +0900 JST +carbon.CreateFromTimestamp(0).ToString() // 1970-01-01 08:00:00 +0800 CST +carbon.CreateFromTimestamp(0, carbon.Tokyo).ToString() // 1970-01-01 09:00:00 +0900 JST +carbon.CreateFromTimestamp(1).ToString() // 1970-01-01 08:00:01 +0800 CST +carbon.CreateFromTimestamp(1, carbon.Tokyo).ToString() // 1970-01-01 09:00:01 +0900 JST +carbon.CreateFromTimestamp(1649735755).ToString() // 2022-04-12 11:55:55 +0800 CST +carbon.CreateFromTimestamp(1649735755, carbon.Tokyo).ToString() // 2022-04-12 12:55:55 +0900 JST // 从毫秒级时间戳创建 Carbon 实例 -carbon.CreateFromTimestamp(1596604455000).ToDateTimeString() // 2020-08-05 13:14:15 -carbon.CreateFromTimestamp(1596604455000, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +carbon.CreateFromTimestampMilli(1649735755981).ToString() // 2022-04-12 11:55:55.981 +0800 CST +carbon.CreateFromTimestampMilli(1649735755981, carbon.Tokyo).ToString() // 2022-04-12 11:55:55.981 +0900 JST // 从微秒级时间戳创建 Carbon 实例 -carbon.CreateFromTimestamp(1596604455000000).ToDateTimeString() // 2020-08-05 13:14:15 -carbon.CreateFromTimestamp(1596604455000000, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 -// 从纳级时间戳创建 Carbon 实例 -carbon.CreateFromTimestamp(1596604455000000000).ToDateTimeString() // 2020-08-05 13:14:15 -carbon.CreateFromTimestamp(1596604455000000000, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +carbon.CreateFromTimestampMicro(1649735755981566).ToString() // 2022-04-12 11:55:55.981566 +0800 CST +carbon.CreateFromTimestampMicro(1649735755981566, carbon.Tokyo).ToString() // 2022-04-12 11:55:55.981566 +0900 JST +// 从纳秒级时间戳创建 Carbon 实例 +carbon.CreateFromTimestampNano(1649735755981566000).ToString() // 2022-04-12 11:55:55.981566 +0800 CST +carbon.CreateFromTimestampNano(1649735755981566000, carbon.Tokyo).ToString() // 2022-04-12 11:55:55.981566 +0900 CST // 从年月日时分秒创建 Carbon 实例 carbon.CreateFromDateTime(2020, 8, 5, 13, 14, 15).ToDateTimeString() // 2020-08-05 13:14:15 carbon.CreateFromDateTime(2020, 8, 5, 13, 14, 15, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +// 从年月日时分秒创建 Carbon 实例,包含毫秒 +carbon.CreateFromDateTimeMilli(2020, 1, 1, 13, 14, 15, 999).ToString() // 2020-01-01 13:14:15.999 +0800 CST +carbon.CreateFromDateTimeMilli(2020, 1, 1, 13, 14, 15, 999, carbon.Tokyo).ToString() // 2020-01-01 13:14:15.999 +0900 JST +// 从年月日时分秒创建 Carbon 实例,包含微秒 +carbon.CreateFromDateTimeMicro(2020, 1, 1, 13, 14, 15, 999999).ToString() // 2020-01-01 13:14:15.999999 +0800 CST +carbon.CreateFromDateTimeMicro(2020, 1, 1, 13, 14, 15, 999999, carbon.Tokyo).ToString() // 2020-01-01 13:14:15.999999 +0900 JST +// 从年月日时分秒创建 Carbon 实例,包含纳秒 +carbon.CreateFromDateTimeNano(2020, 1, 1, 13, 14, 15, 999999999).ToString() // 2020-01-01 13:14:15.999999999 +0800 CST +carbon.CreateFromDateTimeNano(2020, 1, 1, 13, 14, 15, 999999999, carbon.Tokyo).ToString() // 2020-01-01 13:14:15.999999999 +0900 JST + // 从年月日创建 Carbon 实例(时分秒默认为当前时分秒) carbon.CreateFromDate(2020, 8, 5).ToDateTimeString() // 2020-08-05 13:14:15 carbon.CreateFromDate(2020, 8, 5, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 @@ -171,8 +180,10 @@ carbon.Parse("2020-08-05 13:14:15").ToDateTimeString() // 2020-08-05 13:14:15 carbon.Parse("2020-08-05").ToDateTimeString() // 2020-08-05 00:00:00 carbon.Parse("20200805131415").ToDateTimeString() // 2020-08-05 13:14:15 carbon.Parse("20200805").ToDateTimeString() // 2020-08-05 00:00:00 -carbon.Parse("2020-08-05T13:14:15+08:00").ToDateTimeString() // 2020-08-05 13:14:15 -carbon.Parse("2020-08-05 13:14:15", carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +carbon.Parse("2020-08-05T13:14:15+08:00").ToString() // 2020-08-05T13:14:15+08:00 +carbon.Parse("2020-08-05T13:14:15.999+08:00").ToString() // 2020-08-05 13:14:15.999 +0800 CST +carbon.Parse("2020-08-05T13:14:15.999999+08:00").ToString() // 2020-08-05 13:14:15.999999 +0800 CST +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToString() // 2020-08-05 13:14:15.999999999 +0800 CST ``` ##### 通过格式化字符将字符串解析成 Carbon 实例 @@ -636,6 +647,18 @@ carbon.SetTimezone(carbon.Tokyo).Now().SetTimezone(carbon.PRC).ToDateTimeString( carbon.Parse("2020-07-05 13:14:15").SetLocale("en").DiffForHumans() // 1 month ago carbon.Parse("2020-07-05 13:14:15").SetLocale("zh-CN").DiffForHumans() // 1 月前 +// 设置年月日时分秒 +carbon.Parse("2020-01-01").SetDateTime(2019, 2, 2, 13, 14, 15).ToDateTimeString() // 2019-02-02 13:14:15 +carbon.Parse("2020-01-01").SetDateTime(2019, 2, 31, 13, 14, 15).ToDateTimeString() // 2019-03-03 13:14:15 + +// 设置年月日 +carbon.Parse("2020-01-01").SetDate(2019, 2, 2).ToDateTimeString() // 2019-02-02 00:00:00 +carbon.Parse("2020-01-01").SetDate(2019, 2, 31).ToDateTimeString() // 2019-03-03 00:00:00 + +// 设置时分秒 +carbon.Parse("2020-01-01").SetTime(13, 14, 15).ToDateTimeString() // 2020-01-01 13:14:15 +carbon.Parse("2020-01-01").SetTime(13, 14, 90).ToDateTimeString() // 2020-01-01 13:15:30 + // 设置年份 carbon.Parse("2020-02-29").SetYear(2021).ToDateString() // 2021-03-01 // 设置年份(月份不溢出) @@ -702,6 +725,13 @@ carbon.Parse("2020-08-05 13:14:15").WeekOfMonth() // 1 // 获取本周第几天 carbon.Parse("2020-08-05 13:14:15").DayOfWeek() // 3 +// 获取当前年月日时分秒 +carbon.Parse("2020-08-05 13:14:15").DateTime() // 2020,8,5,13,14,15 +// 获取当前年月日 +carbon.Parse("2020-08-05 13:14:15").Date() // 2020,8,5 +// 获取当前时分秒 +carbon.Parse("2020-08-05 13:14:15").Time() // 13,14,15 + // 获取当前世纪 carbon.Parse("2020-08-05 13:14:15").Century() // 21 // 获取当前年代 @@ -726,21 +756,20 @@ carbon.Parse("2020-08-05 13:14:15").Minute() // 14 // 获取当前秒钟 carbon.Parse("2020-08-05 13:14:15").Second() // 15 // 获取当前毫秒 -carbon.Parse("2020-08-05 13:14:15").Millisecond() // 1596604455000 +carbon.Parse("2020-08-05 13:14:15.999").Millisecond() // 999 // 获取当前微秒 -carbon.Parse("2020-08-05 13:14:15").Microsecond() // 1596604455000000 +carbon.Parse("2020-08-05 13:14:15.999").Microsecond() // 999000 // 获取当前纳秒 -carbon.Parse("2020-08-05 13:14:15").Nanosecond() // 1596604455000000000 +carbon.Parse("2020-08-05 13:14:15.999").Nanosecond() // 999000000 -// 获取秒级时间戳, Timestamp() 是TimestampWithSecond()的简写 +// 获取秒级时间戳 carbon.Parse("2020-08-05 13:14:15").Timestamp() // 1596604455 -carbon.Parse("2020-08-05 13:14:15").TimestampWithSecond() // 1596604455 // 获取毫秒级时间戳 -carbon.Parse("2020-08-05 13:14:15").TimestampWithMillisecond() // 1596604455000 +carbon.Parse("2020-08-05 13:14:15").TimestampMilli() // 1596604455000 // 获取微秒级时间戳 -carbon.Parse("2020-08-05 13:14:15").TimestampWithMicrosecond() // 1596604455000000 +carbon.Parse("2020-08-05 13:14:15").TimestampMicro() // 1596604455000000 // 获取纳秒级时间戳 -carbon.Parse("2020-08-05 13:14:15").TimestampWithNanosecond() // 1596604455000000000 +carbon.Parse("2020-08-05 13:14:15").TimestampNano() // 1596604455000000000 // 获取时区 carbon.SetTimezone(carbon.PRC).Timezone() // CST @@ -778,11 +807,30 @@ carbon.Parse("2002-12-31 13:14:15").Age() // 18 ```go // 输出日期时间字符串 -carbon.Parse("2020-08-05 13:14:15").ToDateTimeString() // 2020-08-05 13:14:15 -carbon.Parse("2020-08-05 13:14:15").ToDateTimeString(carbon.Tokyo) // 2020-08-05 14:14:15 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeString() // 2020-08-05 13:14:15 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeString(carbon.Tokyo) // 2020-08-05 14:14:15 +// 输出日期时间字符串,包含毫秒 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMilliString() // 2020-08-05 13:14:15.999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMilliString(carbon.Tokyo) // 2020-08-05 14:14:15.999 +// 输出日期时间字符串,包含微秒 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMicroString() // 2020-08-05 13:14:15.999999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMicroString(carbon.Tokyo) // 2020-08-05 14:14:15.999999 +// 输出日期时间字符串,包含纳秒 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeNanoString() // 2020-08-05 13:14:15.999999999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeNanoString(carbon.Tokyo) // 2020-08-05 14:14:15.999999999 + // 输出简写日期时间字符串 -carbon.Parse("2020-08-05 13:14:15").ToShortDateTimeString() // 20200805131415 -carbon.Parse("2020-08-05 13:14:15").ToShortDateTimeString(carbon.Tokyo) // 20200805141415 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeString() // 20200805131415 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeString(carbon.Tokyo) // 20200805141415 +// 输出简写日期时间字符串,包含毫秒 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMilliString() // 20200805131415.999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMilliString(carbon.Tokyo) // 20200805141415.999 +// 输出简写日期时间字符串,包含微秒 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMicroString() // 20200805131415.999999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMicroString(carbon.Tokyo) // 20200805141415.999999 +// 输出简写日期时间字符串,包含纳秒 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeNanoString() // 20200805131415.999999999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeNanoString(carbon.Tokyo) // 20200805141415.999999999 // 输出日期字符串 carbon.Parse("2020-08-05 13:14:15").ToDateString() // 2020-08-05 @@ -850,20 +898,30 @@ carbon.Parse("2020-08-05 13:14:15").ToRfc1123zString(carbon.Tokyo) // Wed, 05 Au // 输出 RFC2822 格式字符串 carbon.Parse("2020-08-05 13:14:15").ToRfc2822String() // Wed, 05 Aug 2020 13:14:15 +0800 carbon.Parse("2020-08-05 13:14:15").ToRfc2822String(carbon.Tokyo) // Wed, 05 Aug 2020 14:14:15 +0900 -// 输出 RFC3339 格式字符串 -carbon.Parse("2020-08-05 13:14:15").ToRfc3339String() // 2020-08-05T13:14:15+08:00 -carbon.Parse("2020-08-05 13:14:15").ToRfc3339String(carbon.Tokyo) // 2020-08-05T14:14:15+09:00 // 输出 RFC7231 格式字符串 carbon.Parse("2020-08-05 13:14:15").ToRfc7231String() // Wed, 05 Aug 2020 13:14:15 GMT carbon.Parse("2020-08-05 13:14:15").ToRfc7231String(carbon.Tokyo) // Wed, 05 Aug 2020 14:14:15 GMT +// 输出 RFC3339 格式字符串 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339String() // 2020-08-05T13:14:15+08:00 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339String(carbon.Tokyo) // 2020-08-05T14:14:15+09:00 +// 输出 RFC3339Milli 格式字符串 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339MilliString() // 2020-08-05T13:14:15.999+08:00 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339MilliString(carbon.Tokyo) // 2020-08-05T13:14:15.999+09:00 +// 输出 RFC3339Micro 格式字符串 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339MicroString() // 2020-08-05T13:14:15.999999+08:00 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339MicroString(carbon.Tokyo) // 2020-08-05T13:14:15.999999+09:00 +// 输出 RFC3339Nano 格式字符串 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339NanoString() // 2020-08-05T13:14:15.999999999+08:00 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339NanoString(carbon.Tokyo) // 2020-08-05T13:14:15.999999999+09:00 + // 输出日期时间字符串 fmt.Sprintf("%s", carbon.Parse("2020-08-05 13:14:15")) // 2020-08-05 13:14:15 fmt.Sprintf("%s", carbon.Parse("2020-08-05 13:14:15", carbon.Tokyo)) // 2020-08-05 13:14:15 // 输出"2006-01-02 15:04:05.999999999 -0700 MST"格式字符串 -carbon.Parse("2020-08-05 13:14:15").ToString() // 2020-08-05 13:14:15 +0800 CST -carbon.Parse("2020-08-05 13:14:15").ToString(carbon.Tokyo) // 2020-08-05 14:14:15 +0900 JST +carbon.Parse("2020-08-05 13:14:15").ToString() // 2020-08-05 13:14:15.999999 +0800 CST +carbon.Parse("2020-08-05 13:14:15").ToString(carbon.Tokyo) // 2020-08-05 14:14:15999999 +0900 JST // 输出指定布局的字符串,Layout()是ToLayoutString()的简写 carbon.Parse("2020-08-05 13:14:15").Layout("20060102150405") // 20200805131415 @@ -1004,17 +1062,14 @@ carbon.Parse("2020-08-05 13:14:15", carbon.PRC).Lunar().IsPigYear() // false ```go type Person struct { - ID int64 `json:"id"` Name string `json:"name"` Age int `json:"age"` Birthday carbon.DateTime `json:"birthday"` GraduatedAt carbon.Date `json:"graduated_at"` - CreatedAt carbon.Time `json:"created_at"` - UpdatedAt carbon.Timestamp `json:"updated_at"` - DateTime1 carbon.TimestampWithSecond `json:"date_time1"` - DateTime2 carbon.TimestampWithMillisecond `json:"date_time2"` - DateTime3 carbon.TimestampWithMicrosecond `json:"date_time3"` - DateTime4 carbon.TimestampWithNanosecond `json:"date_time4"` + DateTime1 carbon.Timestamp `json:"date_time1"` + DateTime2 carbon.TimestampMilli `json:"date_time2"` + DateTime3 carbon.TimestampMicro `json:"date_time3"` + DateTime4 carbon.TimestampNano `json:"date_time4"` } ``` @@ -1022,17 +1077,14 @@ type Person struct { ```go person := Person { - ID: 1, - Name: "gouguoyin", - Age: 18, - Birthday: carbon.DateTime{carbon.Now().SubYears(18)}, - GraduatedAt: carbon.Date{carbon.Parse("2020-08-05 13:14:15")}, - CreatedAt: carbon.Time{carbon.Parse("2021-08-05 13:14:15")}, - UpdatedAt: carbon.Timestamp{carbon.Parse("2022-08-05 13:14:15")}, - DateTime1: carbon.TimestampWithSecond{carbon.Parse("2023-08-05 13:14:15")}, - DateTime2: carbon.TimestampWithMillisecond{carbon.Parse("2024-08-05 13:14:15")}, - DateTime3: carbon.TimestampWithMicrosecond{carbon.Parse("2025-08-05 13:14:15")}, - DateTime4: carbon.TimestampWithNanosecond{carbon.Parse("2025-08-05 13:14:15")}, + Name: "gouguoyin", + Age: 18, + Birthday: carbon.DateTime{carbon.Now().SubYears(18)}, + GraduatedAt: carbon.Date{carbon.Parse("2020-08-05 13:14:15")}, + DateTime1: carbon.Timestamp{carbon.Parse("2023-08-05 13:14:15")}, + DateTime2: carbon.TimestampMilli{carbon.Parse("2024-08-05 13:14:15")}, + DateTime3: carbon.TimestampMicro{carbon.Parse("2025-08-05 13:14:15")}, + DateTime4: carbon.TimestampNano{carbon.Parse("2025-08-05 13:14:15")}, } ``` @@ -1047,13 +1099,10 @@ if err != nil { fmt.Printf("%s", data) // 输出 { - "id": 1, "name": "gouguoyin", "age": 18, "birthday": "2003-07-16 16:22:02", "graduated_at": "2020-08-05", - "created_at": "13:14:15", - "updated_at": 1659676455, "date_time1": 1691212455, "date_time2": 1722834855000, "date_time3": 1754370855000000, @@ -1065,12 +1114,10 @@ fmt.Printf("%s", data) ```go jsonString := `{ - "id": 1, "name": "gouguoyin", "age": 18, "birthday": "2003-07-16 16:22:02", "graduated_at": "2020-08-05", - "updated_at": 1659676455, "date_time1": 1691212455, "date_time2": 1722834855000, "date_time3": 1754370855000000, @@ -1084,7 +1131,7 @@ if err != nil { } fmt.Printf("%+v", *person) // 输出 -{ID:1 Name:gouguoyin Age:18 Birthday:2003-07-16 16:22:02 GraduatedAt:2020-08-05 00:00:00 UpdatedAt:2022-08-05 13:14:15 DateTime1:2023-08-05 13:14:15 DateTime2:2024-08-05 13:14:15 DateTime3:2025-08-05 13:14:15 DateTime4:2025-08-05 13:14:15} +{Name:gouguoyin Age:18 Birthday:2003-07-16 16:22:02 GraduatedAt:2020-08-05 00:00:00 DateTime1:2023-08-05 13:14:15 DateTime2:2024-08-05 13:14:15 DateTime3:2025-08-05 13:14:15 DateTime4:2025-08-05 13:14:15} ``` ##### 国际化支持 diff --git a/README.jp.md b/README.jp.md index 814e6947..aa3b7acb 100755 --- a/README.jp.md +++ b/README.jp.md @@ -74,13 +74,12 @@ carbon.Now(Carbon.NewYork).ToDateTimeString() // 2020-08-05 14:14:15 carbon.SetTimezone(Carbon.NewYork).Now().ToDateTimeString() // 2020-08-05 14:14:15 // 今日は秒タイムスタンプ carbon.Now().Timestamp() // 1596604455 -carbon.Now().TimestampWithSecond() // 1596604455 // 今日のミリ秒タイムスタンプ -carbon.Now().TimestampWithMillisecond() // 1596604455000 +carbon.Now().TimestampMilli() // 1596604455000 // 今日のマイクロ秒タイムスタンプ -carbon.Now().TimestampWithMicrosecond() // 1596604455000000 +carbon.Now().TimestampMicro() // 1596604455000000 // 今日のナノ秒タイムスタンプ -carbon.Now().TimestampWithNanosecond() // 1596604455000000000 +carbon.Now().TimestampNano() // 1596604455000000000 // 昨日の今は fmt.Sprintf("%s", carbon.Yesterday()) // 2020-08-04 13:14:15 @@ -96,13 +95,12 @@ carbon.Yesterday(Carbon.NewYork).ToDateTimeString() // 2020-08-04 14:14:15 carbon.SetTimezone(Carbon.NewYork).Yesterday().ToDateTimeString() // 2020-08-04 14:14:15 // 昨日の秒タイムスタンプ carbon.Yesterday().Timestamp() // 1596518055 -carbon.Yesterday().TimestampWithSecond() // 1596518055 // 昨日のミリ秒タイムスタンプ -carbon.Yesterday().TimestampWithMillisecond() // 1596518055000 +carbon.Yesterday().TimestampMilli() // 1596518055000 // 昨日のマイクロ秒タイムスタンプ -carbon.Yesterday().TimestampWithMicrosecond() // 1596518055000000 +carbon.Yesterday().TimestampMicro() // 1596518055000000 // 昨日のナノ秒タイムスタンプ -carbon.Yesterday().TimestampWithNanosecond() // 1596518055000000000 +carbon.Yesterday().TimestampNano() // 1596518055000000000 // 明日の今は fmt.Sprintf("%s", carbon.Tomorrow()) // 2020-08-06 13:14:15 @@ -118,38 +116,49 @@ carbon.Tomorrow(Carbon.NewYork).ToDateTimeString() // 2020-08-06 14:14:15 carbon.SetTimezone(Carbon.NewYork).Tomorrow().ToDateTimeString() // 2020-08-06 14:14:15 // 明日の秒タイムスタンプ carbon.Tomorrow().Timestamp() // 1596690855 -carbon.Tomorrow().TimestampWithSecond() // 1596690855 // 明日のミリ秒タイムスタンプ -carbon.Tomorrow().TimestampWithMillisecond() // 1596690855000 +carbon.Tomorrow().TimestampMilli() // 1596690855000 // 明日のマイクロ秒タイムスタンプ -carbon.Tomorrow().TimestampWithMicrosecond() // 1596690855000000 +carbon.Tomorrow().TimestampMicro() // 1596690855000000 // 明日のナノ秒タイムスタンプ -carbon.Tomorrow().TimestampWithNanosecond() // 1596690855000000000 +carbon.Tomorrow().TimestampNano() // 1596690855000000000 ``` ##### Carbon オブジェクトを作成する ```go // 秒タイムスタンプから Carbon オブジェクトを作成します -carbon.CreateFromTimestamp(-1).ToDateTimeString() // 1970-01-01 07:59:59 -carbon.CreateFromTimestamp(-1, carbon.Tokyo).ToDateTimeString() // 1970-01-01 08:59:59 -carbon.CreateFromTimestamp(0).ToDateTimeString() // 1970-01-01 08:00:00 -carbon.CreateFromTimestamp(0, carbon.Tokyo).ToDateTimeString() // 1970-01-01 09:00:00 -carbon.CreateFromTimestamp(1596604455).ToDateTimeString() // 2020-08-05 13:14:15 -carbon.CreateFromTimestamp(1596604455, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +carbon.CreateFromTimestamp(-1).ToString() // 1970-01-01 07:59:59 +0800 CST +carbon.CreateFromTimestamp(-1, carbon.Tokyo).ToString() // 1970-01-01 08:59:59 +0900 JST +carbon.CreateFromTimestamp(0).ToString() // 1970-01-01 08:00:00 +0800 CST +carbon.CreateFromTimestamp(0, carbon.Tokyo).ToString() // 1970-01-01 09:00:00 +0900 JST +carbon.CreateFromTimestamp(1).ToString() // 1970-01-01 08:00:01 +0800 CST +carbon.CreateFromTimestamp(1, carbon.Tokyo).ToString() // 1970-01-01 09:00:01 +0900 JST +carbon.CreateFromTimestamp(1649735755).ToString() // 2022-04-12 11:55:55 +0800 CST +carbon.CreateFromTimestamp(1649735755, carbon.Tokyo).ToString() // 2022-04-12 12:55:55 +0900 JST // ミリ秒のタイムスタンプから Carbon オブジェクトを作成します -carbon.CreateFromTimestamp(1596604455000).ToDateTimeString() // 2020-08-05 13:14:15 -carbon.CreateFromTimestamp(1596604455000, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +carbon.CreateFromTimestampMilli(1649735755981).ToString() // 2022-04-12 11:55:55.981 +0800 CST +carbon.CreateFromTimestampMilli(1649735755981, carbon.Tokyo).ToString() // 2022-04-12 11:55:55.981 +0900 JST // マイクロ秒タイムスタンプから Carbon オブジェクトを作成します -carbon.CreateFromTimestamp(1596604455000000).ToDateTimeString() // 2020-08-05 13:14:15 -carbon.CreateFromTimestamp(1596604455000000, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +carbon.CreateFromTimestampMicro(1649735755981566).ToString() // 2022-04-12 11:55:55.981566 +0800 CST +carbon.CreateFromTimestampMicro(1649735755981566, carbon.Tokyo).ToString() // 2022-04-12 11:55:55.981566 +0900 JST // ナノタイムスタンプから Carbon オブジェクトを作成します -carbon.CreateFromTimestamp(1596604455000000000).ToDateTimeString() // 2020-08-05 13:14:15 -carbon.CreateFromTimestamp(1596604455000000000, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +carbon.CreateFromTimestampNano(1649735755981566000).ToString() // 2022-04-12 11:55:55.981566 +0800 CST +carbon.CreateFromTimestampNano(1649735755981566000, carbon.Tokyo).ToString() // 2022-04-12 11:55:55.981566 +0900 CST // 年月日から分秒で Carbon オブジェクトを作成します carbon.CreateFromDateTime(2020, 8, 5, 13, 14, 15).ToDateTimeString() // 2020-08-05 13:14:15 carbon.CreateFromDateTime(2020, 8, 5, 13, 14, 15, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +// 年月日から分秒で Carbon オブジェクトを作成します,,ミリ秒を含む +carbon.CreateFromDateTimeMilli(2020, 1, 1, 13, 14, 15, 999).ToString() // 2020-01-01 13:14:15.999 +0800 CST +carbon.CreateFromDateTimeMilli(2020, 1, 1, 13, 14, 15, 999, carbon.Tokyo).ToString() // 2020-01-01 13:14:15.999 +0900 JST +// 年月日から分秒で Carbon オブジェクトを作成します,マイクロ秒を含む +carbon.CreateFromDateTimeMicro(2020, 1, 1, 13, 14, 15, 999999).ToString() // 2020-01-01 13:14:15.999999 +0800 CST +carbon.CreateFromDateTimeMicro(2020, 1, 1, 13, 14, 15, 999999, carbon.Tokyo).ToString() // 2020-01-01 13:14:15.999999 +0900 JST +// 年月日から分秒で Carbon オブジェクトを作成します,ナノ秒を含む +carbon.CreateFromDateTimeNano(2020, 1, 1, 13, 14, 15, 999999999).ToString() // 2020-01-01 13:14:15.999999999 +0800 CST +carbon.CreateFromDateTimeNano(2020, 1, 1, 13, 14, 15, 999999999, carbon.Tokyo).ToString() // 2020-01-01 13:14:15.999999999 +0900 JST + // 年月日から Carbon オブジェクトを作成します(時分秒はデフォルトで現在の時分秒です) carbon.CreateFromDate(2020, 8, 5).ToDateTimeString() // 2020-08-05 13:14:15 carbon.CreateFromDate(2020, 8, 5, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 @@ -171,8 +180,10 @@ carbon.Parse("2020-08-05 13:14:15").ToDateTimeString() // 2020-08-05 13:14:15 carbon.Parse("2020-08-05").ToDateTimeString() // 2020-08-05 00:00:00 carbon.Parse("20200805131415").ToDateTimeString() // 2020-08-05 13:14:15 carbon.Parse("20200805").ToDateTimeString() // 2020-08-05 00:00:00 -carbon.Parse("2020-08-05T13:14:15+08:00").ToDateTimeString() // 2020-08-05 13:14:15 -carbon.Parse("2020-08-05 13:14:15", carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +carbon.Parse("2020-08-05T13:14:15+08:00").ToString() // 2020-08-05T13:14:15+08:00 +carbon.Parse("2020-08-05T13:14:15.999+08:00").ToString() // 2020-08-05 13:14:15.999 +0800 CST +carbon.Parse("2020-08-05T13:14:15.999999+08:00").ToString() // 2020-08-05 13:14:15.999999 +0800 CST +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToString() // 2020-08-05 13:14:15.999999999 +0800 CST ``` ##### 文字をフォーマットして文字列を Carbon オブジェクトに解析します @@ -634,6 +645,18 @@ carbon.SetTimezone(carbon.Tokyo).Now().SetTimezone(carbon.PRC).ToDateTimeString( carbon.Parse("2020-07-05 13:14:15").SetLocale("en").DiffForHumans()) // 1 month ago carbon.Parse("2020-07-05 13:14:15").SetLocale("zh-CN").DiffForHumans() // 1 月前 +// 年月日時分秒を設定する +carbon.Parse("2020-01-01").SetDateTime(2019, 2, 2, 13, 14, 15).ToDateTimeString() // 2019-02-02 13:14:15 +carbon.Parse("2020-01-01").SetDateTime(2019, 2, 31, 13, 14, 15).ToDateTimeString() // 2019-03-03 13:14:15 + +// 年月日を設定する +carbon.Parse("2020-01-01").SetDate(2019, 2, 2).ToDateTimeString() // 2019-02-02 00:00:00 +carbon.Parse("2020-01-01").SetDate(2019, 2, 31).ToDateTimeString() // 2019-03-03 00:00:00 + +// 時分秒を設定する +carbon.Parse("2020-01-01").SetTime(13, 14, 15).ToDateTimeString() // 2020-01-01 13:14:15 +carbon.Parse("2020-01-01").SetTime(13, 14, 90).ToDateTimeString() // 2020-01-01 13:15:30 + // 年を設定する carbon.Parse("2020-02-29").SetYear(2021).ToDateString() // 2021-03-01 // 年を設定する(オーバーフローなし) @@ -700,6 +723,13 @@ carbon.Parse("2020-08-05 13:14:15").WeekOfMonth() // 1 // 今月の何週目(1から)を取得 carbon.Parse("2020-08-05 13:14:15").DayOfWeek() // 3 +// 現在の年月日時分秒を取得 +carbon.Parse("2020-08-05 13:14:15").DateTime() // 2020,8,5,13,14,15 +// 現在の年月日を取得 +carbon.Parse("2020-08-05 13:14:15").Date() // 2020,8,5 +// 現在の時分秒を取得 +carbon.Parse("2020-08-05 13:14:15").Time() // 13,14,15 + // 現在の世紀を取得 carbon.Parse("2020-08-05 13:14:15").Century() // 21 // 現在の年代を取得 @@ -724,21 +754,20 @@ carbon.Parse("2020-08-05 13:14:15").Minute() // 14 // 現在の秒を取得 carbon.Parse("2020-08-05 13:14:15").Second() // 15 // 現在のミリ秒を取得 -carbon.Parse("2020-08-05 13:14:15").Millisecond() // 1596604455000 +carbon.Parse("2020-08-05 13:14:15.999").Millisecond() // 999 // 現在のマイクロ秒を取得 -carbon.Parse("2020-08-05 13:14:15").Microsecond() // 1596604455000000 +carbon.Parse("2020-08-05 13:14:15.999").Microsecond() // 999000 // 現在のナノ秒を取得 -carbon.Parse("2020-08-05 13:14:15").Nanosecond() // 1596604455000000000 +carbon.Parse("2020-08-05 13:14:15.999").Nanosecond() // 999000000 -// 秒タイムスタンプを取得, Timestamp() は TimestampWithSecond() の略記です +// 秒タイムスタンプを取得 carbon.Parse("2020-08-05 13:14:15").Timestamp() // 1596604455 -carbon.Parse("2020-08-05 13:14:15").TimestampWithSecond() // 1596604455 // ミリ秒のタイムスタンプを取得 -carbon.Parse("2020-08-05 13:14:15").TimestampWithMillisecond() // 1596604455000 +carbon.Parse("2020-08-05 13:14:15").TimestampMilli() // 1596604455000 // マイクロ秒タイムスタンプを取得 -carbon.Parse("2020-08-05 13:14:15").TimestampWithMicrosecond() // 1596604455000000 +carbon.Parse("2020-08-05 13:14:15").TimestampMicro() // 1596604455000000 // ナノ秒タイムスタンプを取得 -carbon.Parse("2020-08-05 13:14:15").TimestampWithNanosecond() // 1596604455000000000 +carbon.Parse("2020-08-05 13:14:15").TimestampNano() // 1596604455000000000 // タイムゾーン名を取得 carbon.SetTimezone(carbon.PRC).Timezone() // CST @@ -777,9 +806,28 @@ carbon.Parse("2002-12-31 13:14:15").Age() // 18 // 日期时间文字列を出力 carbon.Parse("2020-08-05 13:14:15").ToDateTimeString() // 2020-08-05 13:14:15 carbon.Parse("2020-08-05 13:14:15").ToDateTimeString(carbon.Tokyo) // 2020-08-05 14:14:15 +// 日期时间文字列を出力,ミリ秒を含む +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMilliString() // 2020-08-05 13:14:15.999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMilliString(carbon.Tokyo) // 2020-08-05 14:14:15.999 +// 日期时间文字列を出力,マイクロ秒を含む +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMicroString() // 2020-08-05 13:14:15.999999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMicroString(carbon.Tokyo) // 2020-08-05 14:14:15.999999 +// 日期时间文字列を出力,ナノ秒を含む +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeNanoString() // 2020-08-05 13:14:15.999999999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeNanoString(carbon.Tokyo) // 2020-08-05 14:14:15.999999999 + // 略語日期时间文字列を出力 -carbon.Parse("2020-08-05 13:14:15").ToShortDateTimeString() // 20200805131415 -carbon.Parse("2020-08-05 13:14:15").ToShortDateTimeString(carbon.Tokyo) // 20200805141415 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeString() // 20200805131415 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeString(carbon.Tokyo) // 20200805141415 +// 略語日期时间文字列を出力,ミリ秒を含む +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMilliString() // 20200805131415.999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMilliString(carbon.Tokyo) // 20200805141415.999 +// 略語日期时间文字列を出力,マイクロ秒を含む +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMicroString() // 20200805131415.999999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMicroString(carbon.Tokyo) // 20200805141415.999999 +// 略語日期时间文字列を出力,ナノ秒を含む +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeNanoString() // 20200805131415.999999999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeNanoString(carbon.Tokyo) // 20200805141415.999999999 // 日期文字列を出力 carbon.Parse("2020-08-05 13:14:15").ToDateString() // 2020-08-05 @@ -847,20 +895,30 @@ carbon.Parse("2020-08-05 13:14:15").ToRfc1123zString(carbon.Tokyo) // Wed, 05 Au // RFC2822 フォーマット文字列を出力 carbon.Parse("2020-08-05 13:14:15").ToRfc2822String() // Wed, 05 Aug 2020 13:14:15 +0800 carbon.Parse("2020-08-05 13:14:15").ToRfc2822String(carbon.Tokyo) // Wed, 05 Aug 2020 14:14:15 +0900 -// RFC3339 フォーマット文字列を出力 -carbon.Parse("2020-08-05 13:14:15").ToRfc3339String() // 2020-08-05T13:14:15+08:00 -carbon.Parse("2020-08-05 13:14:15").ToRfc3339String(carbon.Tokyo) // 2020-08-05T14:14:15+09:00 // RFC7231 フォーマット文字列を出力 carbon.Parse("2020-08-05 13:14:15").ToRfc7231String() // Wed, 05 Aug 2020 13:14:15 GMT carbon.Parse("2020-08-05 13:14:15").ToRfc7231String(carbon.Tokyo) // Wed, 05 Aug 2020 14:14:15 GMT +// RFC3339 フォーマット文字列を出力 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339String() // 2020-08-05T13:14:15+08:00 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339String(carbon.Tokyo) // 2020-08-05T14:14:15+09:00 +// RFC3339 フォーマット文字列を出力,ミリ秒を含む +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339MilliString() // 2020-08-05T13:14:15.999+08:00 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339MilliString(carbon.Tokyo) // 2020-08-05T13:14:15.999+09:00 +// RFC3339 フォーマット文字列を出力,マイクロ秒を含む +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339MicroString() // 2020-08-05T13:14:15.999999+08:00 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339MicroString(carbon.Tokyo) // 2020-08-05T13:14:15.999999+09:00 +// RFC3339 フォーマット文字列を出力,ナノ秒を含む +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339NanoString() // 2020-08-05T13:14:15.999999999+08:00 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339NanoString(carbon.Tokyo) // 2020-08-05T13:14:15.999999999+09:00 + // 日付時間文字列を出力 fmt.Sprintf("%s", carbon.Parse("2020-08-05 13:14:15")) // 2020-08-05 13:14:15 fmt.Sprintf("%s", carbon.Parse("2020-08-05 13:14:15", carbon.Tokyo)) // 2020-08-05 13:14:15 // "2006-01-02 15:04:05.999999999 -0700 MST" フォーマット文字列を出力 -carbon.Parse("2020-08-05 13:14:15").ToString() // 2020-08-05 13:14:15 +0800 CST -carbon.Parse("2020-08-05 13:14:15").ToString(carbon.Tokyo) // 2020-08-05 14:14:15 +0900 JST +carbon.Parse("2020-08-05 13:14:15").ToString() // 2020-08-05 13:14:15.999999 +0800 CST +carbon.Parse("2020-08-05 13:14:15").ToString(carbon.Tokyo) // 2020-08-05 14:14:15999999 +0900 JST // レイアウトを指定する文字列を出力, Layout() は 是ToLayoutString() の略記です carbon.Parse("2020-08-05 13:14:15").Layout("20060102150405") // 20200805131415 @@ -1001,17 +1059,14 @@ carbon.Parse("2020-08-05 13:14:15", carbon.PRC).Lunar().IsPigYear() // false ```go type Person struct { - ID int64 `json:"id"` - Name string `json:"name"` - Age int `json:"age"` - Birthday carbon.DateTime `json:"birthday"` - GraduatedAt carbon.Date `json:"graduated_at"` - CreatedAt carbon.Time `json:"created_at"` - UpdatedAt carbon.Timestamp `json:"updated_at"` - DateTime1 carbon.TimestampWithSecond `json:"date_time1"` - DateTime2 carbon.TimestampWithMillisecond `json:"date_time2"` - DateTime3 carbon.TimestampWithMicrosecond `json:"date_time3"` - DateTime4 carbon.TimestampWithNanosecond `json:"date_time4"` + Name string `json:"name"` + Age int `json:"age"` + Birthday carbon.DateTime `json:"birthday"` + GraduatedAt carbon.Date `json:"graduated_at"` + DateTime1 carbon.Timestamp `json:"date_time1"` + DateTime2 carbon.TimestampMilli `json:"date_time2"` + DateTime3 carbon.TimestampMicro `json:"date_time3"` + DateTime4 carbon.TimestampNano `json:"date_time4"` } ``` @@ -1019,17 +1074,14 @@ type Person struct { ```go person := Person { - ID: 1, - Name: "gouguoyin", - Age: 18, - Birthday: carbon.DateTime{carbon.Now().SubYears(18)}, - GraduatedAt: carbon.Date{carbon.Parse("2020-08-05 13:14:15")}, - CreatedAt: carbon.Time{carbon.Parse("2021-08-05 13:14:15")}, - UpdatedAt: carbon.Timestamp{carbon.Parse("2022-08-05 13:14:15")}, - DateTime1: carbon.TimestampWithSecond{carbon.Parse("2023-08-05 13:14:15")}, - DateTime2: carbon.TimestampWithMillisecond{carbon.Parse("2024-08-05 13:14:15")}, - DateTime3: carbon.TimestampWithMicrosecond{carbon.Parse("2025-08-05 13:14:15")}, - DateTime4: carbon.TimestampWithNanosecond{carbon.Parse("2025-08-05 13:14:15")}, + Name: "gouguoyin", + Age: 18, + Birthday: carbon.DateTime{carbon.Now().SubYears(18)}, + GraduatedAt: carbon.Date{carbon.Parse("2020-08-05 13:14:15")}, + DateTime1: carbon.Timestamp{carbon.Parse("2023-08-05 13:14:15")}, + DateTime2: carbon.TimestampMilli{carbon.Parse("2024-08-05 13:14:15")}, + DateTime3: carbon.TimestampMicro{carbon.Parse("2025-08-05 13:14:15")}, + DateTime4: carbon.TimestampNano{carbon.Parse("2025-08-05 13:14:15")}, } ``` @@ -1044,13 +1096,10 @@ if err != nil { fmt.Printf("%s", data) // 出力 { - "id": 1, "name": "gouguoyin", "age": 18, "birthday": "2003-07-16 16:22:02", "graduated_at": "2020-08-05", - "created_at": "13:14:15", - "updated_at": 1659676455, "date_time1": 1691212455, "date_time2": 1722834855000, "date_time3": 1754370855000000, @@ -1062,12 +1111,10 @@ fmt.Printf("%s", data) ```go jsonString := `{ - "id": 1, "name": "gouguoyin", "age": 18, "birthday": "2003-07-16 16:22:02", "graduated_at": "2020-08-05", - "updated_at": 1659676455, "date_time1": 1691212455, "date_time2": 1722834855000, "date_time3": 1754370855000000, @@ -1081,7 +1128,7 @@ if err != nil { } fmt.Printf("%+v", *person) // 出力 -{ID:1 Name:gouguoyin Age:18 Birthday:2003-07-16 16:22:02 GraduatedAt:2020-08-05 00:00:00 UpdatedAt:2022-08-05 13:14:15 DateTime1:2023-08-05 13:14:15 DateTime2:2024-08-05 13:14:15 DateTime3:2025-08-05 13:14:15 DateTime4:2025-08-05 13:14:15} +{Name:gouguoyin Age:18 Birthday:2003-07-16 16:22:02 GraduatedAt:2020-08-05 00:00:00 DateTime1:2023-08-05 13:14:15 DateTime2:2024-08-05 13:14:15 DateTime3:2025-08-05 13:14:15 DateTime4:2025-08-05 13:14:15} ``` ##### 国際化サポート diff --git a/README.md b/README.md index f733f956..0c478784 100755 --- a/README.md +++ b/README.md @@ -77,13 +77,12 @@ carbon.Now(Carbon.NewYork).ToDateTimeString() // 2020-08-05 14:14:15 carbon.SetTimezone(Carbon.NewYork).Now().ToDateTimeString() // 2020-08-05 14:14:15 // Return timestamp with second of today carbon.Now().Timestamp() // 1596604455 -carbon.Now().TimestampWithSecond() // 1596604455 // Return timestamp with millisecond of today -carbon.Now().TimestampWithMillisecond() // 1596604455000 +carbon.Now().TimestampMilli() // 1596604455000 // Return timestamp with microsecond of today -carbon.Now().TimestampWithMicrosecond() // 1596604455000000 +carbon.Now().TimestampMicro() // 1596604455000000 // Return timestamp with nanosecond of today -carbon.Now().TimestampWithNanosecond() // 1596604455000000000 +carbon.Now().TimestampNano() // 1596604455000000000 // Return datetime of yesterday fmt.Sprintf("%s", carbon.Yesterday()) // 2020-08-04 13:14:15 @@ -99,13 +98,12 @@ carbon.Yesterday(Carbon.NewYork).ToDateTimeString() // 2020-08-04 14:14:15 carbon.SetTimezone(Carbon.NewYork).Yesterday().ToDateTimeString() // 2020-08-04 14:14:15 // Return timestamp with second of yesterday carbon.Yesterday().Timestamp() // 1596518055 -carbon.Yesterday().TimestampWithSecond() // 1596518055 // Return timestamp with millisecond of yesterday -carbon.Yesterday().TimestampWithMillisecond() // 1596518055000 +carbon.Yesterday().TimestampMilli() // 1596518055000 // Return timestamp with microsecond of yesterday -carbon.Yesterday().TimestampWithMicrosecond() // 1596518055000000 +carbon.Yesterday().TimestampMicro() // 1596518055000000 // Return timestamp with nanosecond of yesterday -carbon.Yesterday().TimestampWithNanosecond() // 1596518055000000000 +carbon.Yesterday().TimestampNano() // 1596518055000000000 // Return datetime of tomorrow fmt.Sprintf("%s", carbon.Tomorrow()) // 2020-08-06 13:14:15 @@ -121,38 +119,49 @@ carbon.Tomorrow(Carbon.NewYork).ToDateTimeString() // 2020-08-06 14:14:15 carbon.SetTimezone(Carbon.NewYork).Tomorrow().ToDateTimeString() // 2020-08-06 14:14:15 // Return timestamp with second of tomorrow carbon.Tomorrow().Timestamp() // 1596690855 -carbon.Tomorrow().TimestampWithSecond() // 1596690855 // Return timestamp with millisecond of tomorrow -carbon.Tomorrow().TimestampWithMillisecond() // 1596690855000 +carbon.Tomorrow().TimestampMilli() // 1596690855000 // Return timestamp with microsecond of tomorrow -carbon.Tomorrow().TimestampWithMicrosecond() // 1596690855000000 +carbon.Tomorrow().TimestampMicro() // 1596690855000000 // Return timestamp with nanosecond of tomorrow -carbon.Tomorrow().TimestampWithNanosecond() // 1596690855000000000 +carbon.Tomorrow().TimestampNano() // 1596690855000000000 ``` ##### Create a Carbon instance ```go // Create a Carbon instance from a given timestamp with second -carbon.CreateFromTimestamp(-1).ToDateTimeString() // 1970-01-01 07:59:59 -carbon.CreateFromTimestamp(-1, carbon.Tokyo).ToDateTimeString() // 1970-01-01 08:59:59 -carbon.CreateFromTimestamp(0).ToDateTimeString() // 1970-01-01 08:00:00 -carbon.CreateFromTimestamp(0, carbon.Tokyo).ToDateTimeString() // 1970-01-01 09:00:00 -carbon.CreateFromTimestamp(1596604455).ToDateTimeString() // 2020-08-05 13:14:15 -carbon.CreateFromTimestamp(1596604455, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +carbon.CreateFromTimestamp(-1).ToString() // 1970-01-01 07:59:59 +0800 CST +carbon.CreateFromTimestamp(-1, carbon.Tokyo).ToString() // 1970-01-01 08:59:59 +0900 JST +carbon.CreateFromTimestamp(0).ToString() // 1970-01-01 08:00:00 +0800 CST +carbon.CreateFromTimestamp(0, carbon.Tokyo).ToString() // 1970-01-01 09:00:00 +0900 JST +carbon.CreateFromTimestamp(1).ToString() // 1970-01-01 08:00:01 +0800 CST +carbon.CreateFromTimestamp(1, carbon.Tokyo).ToString() // 1970-01-01 09:00:01 +0900 JST +carbon.CreateFromTimestamp(1649735755).ToString() // 2022-04-12 11:55:55 +0800 CST +carbon.CreateFromTimestamp(1649735755, carbon.Tokyo).ToString() // 2022-04-12 12:55:55 +0900 JST // Create a Carbon instance from a given timestamp with millisecond -carbon.CreateFromTimestamp(1596604455000).ToDateTimeString() // 2020-08-05 13:14:15 -carbon.CreateFromTimestamp(1596604455000, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +carbon.CreateFromTimestampMilli(1649735755981).ToString() // 2022-04-12 11:55:55.981 +0800 CST +carbon.CreateFromTimestampMilli(1649735755981, carbon.Tokyo).ToString() // 2022-04-12 11:55:55.981 +0900 JST // Create a Carbon instance from a given timestamp with microsecond -carbon.CreateFromTimestamp(1596604455000000).ToDateTimeString() // 2020-08-05 13:14:15 -carbon.CreateFromTimestamp(1596604455000000, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +carbon.CreateFromTimestampMicro(1649735755981566).ToString() // 2022-04-12 11:55:55.981566 +0800 CST +carbon.CreateFromTimestampMicro(1649735755981566, carbon.Tokyo).ToString() // 2022-04-12 11:55:55.981566 +0900 JST // Create a Carbon instance from a given timestamp with nanosecond -carbon.CreateFromTimestamp(1596604455000000000).ToDateTimeString() // 2020-08-05 13:14:15 -carbon.CreateFromTimestamp(1596604455000000000, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +carbon.CreateFromTimestampNano(1649735755981566000).ToString() // 2022-04-12 11:55:55.981566 +0800 CST +carbon.CreateFromTimestampNano(1649735755981566000, carbon.Tokyo).ToString() // 2022-04-12 11:55:55.981566 +0900 CST -// Create a Carbon instance from a given year, month, day, hour, minute and second +// Create a Carbon instance from a given date and time. carbon.CreateFromDateTime(2020, 8, 5, 13, 14, 15).ToDateTimeString() // 2020-08-05 13:14:15 carbon.CreateFromDateTime(2020, 8, 5, 13, 14, 15, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +// Create a Carbon instance from a given date and time with millisecond. +carbon.CreateFromDateTimeMilli(2020, 1, 1, 13, 14, 15, 999).ToString() // 2020-01-01 13:14:15.999 +0800 CST +carbon.CreateFromDateTimeMilli(2020, 1, 1, 13, 14, 15, 999, carbon.Tokyo).ToString() // 2020-01-01 13:14:15.999 +0900 JST +// Create a Carbon instance from a given date and time with microsecond. +carbon.CreateFromDateTimeMicro(2020, 1, 1, 13, 14, 15, 999999).ToString() // 2020-01-01 13:14:15.999999 +0800 CST +carbon.CreateFromDateTimeMicro(2020, 1, 1, 13, 14, 15, 999999, carbon.Tokyo).ToString() // 2020-01-01 13:14:15.999999 +0900 JST +// Create a Carbon instance from a given date and time with nanosecond. +carbon.CreateFromDateTimeNano(2020, 1, 1, 13, 14, 15, 999999999).ToString() // 2020-01-01 13:14:15.999999999 +0800 CST +carbon.CreateFromDateTimeNano(2020, 1, 1, 13, 14, 15, 999999999, carbon.Tokyo).ToString() // 2020-01-01 13:14:15.999999999 +0900 JST + // Create a Carbon instance from a given year, month and day carbon.CreateFromDate(2020, 8, 5).ToDateTimeString() // 2020-08-05 13:14:15 carbon.CreateFromDate(2020, 8, 5, carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 @@ -172,11 +181,13 @@ carbon.Parse("2020-08-05 13:14:15").ToDateTimeString() // 2020-08-05 13:14:15 carbon.Parse("2020-08-05").ToDateTimeString() // 2020-08-05 00:00:00 carbon.Parse("20200805131415").ToDateTimeString() // 2020-08-05 13:14:15 carbon.Parse("20200805").ToDateTimeString() // 2020-08-05 00:00:00 -carbon.Parse("2020-08-05T13:14:15+08:00").ToDateTimeString() // 2020-08-05 13:14:15 -carbon.Parse("2020-08-05 13:14:15", carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 +carbon.Parse("2020-08-05T13:14:15+08:00").ToString() // 2020-08-05T13:14:15+08:00 +carbon.Parse("2020-08-05T13:14:15.999+08:00").ToString() // 2020-08-05 13:14:15.999 +0800 CST +carbon.Parse("2020-08-05T13:14:15.999999+08:00").ToString() // 2020-08-05 13:14:15.999999 +0800 CST +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToString() // 2020-08-05 13:14:15.999999999 +0800 CST ``` -##### Parse a string as a carbon instance by format +##### Parse a string as a Carbon instance by format ```go carbon.ParseByFormat("2020|08|05 13|14|15", "Y|m|d H|i|s").ToDateTimeString() // 2020-08-05 13:14:15 @@ -185,7 +196,7 @@ carbon.ParseByFormat("今天是 2020年08月05日13时14分15秒", "今天是 Y carbon.ParseByFormat("2020-08-05 13:14:15", "Y-m-d H:i:s", carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 ``` -##### Parse a string as a carbon instance by layout +##### Parse a string as a Carbon instance by layout ```go carbon.ParseByLayout("2020|08|05 13|14|15", "2006|01|02 15|04|05").ToDateTimeString() // 2020-08-05 13:14:15 @@ -194,7 +205,7 @@ carbon.ParseByLayout("今天是 2020年08月05日13时14分15秒", "今天是 20 carbon.ParseByLayout("2020-08-05 13:14:15", "2006-01-02 15:04:05", carbon.Tokyo).ToDateTimeString() // 2020-08-05 14:14:15 ``` -##### Convert between carbon and time.Time +##### Convert between Carbon and Time ```go // Convert Time.time into Carbon @@ -633,6 +644,18 @@ carbon.SetTimezone(carbon.Tokyo).Now().SetTimezone(carbon.PRC).ToDateTimeString( carbon.Parse("2020-07-05 13:14:15").SetLocale("en").DiffForHumans() // 1 month before carbon.Parse("2020-07-05 13:14:15").SetLocale("zh-CN").DiffForHumans() // 1 月前 +// Set year, month, day, hour, minute and second. +carbon.Parse("2020-01-01").SetDateTime(2019, 2, 2, 13, 14, 15).ToDateTimeString() // 2019-02-02 13:14:15 +carbon.Parse("2020-01-01").SetDateTime(2019, 2, 31, 13, 14, 15).ToDateTimeString() // 2019-03-03 13:14:15 + +// Set year, month and day. +carbon.Parse("2020-01-01").SetDate(2019, 2, 2).ToDateTimeString() // 2019-02-02 00:00:00 +carbon.Parse("2020-01-01").SetDate(2019, 2, 31).ToDateTimeString() // 2019-03-03 00:00:00 + +// Set hour, minute and second. +carbon.Parse("2020-01-01").SetTime(13, 14, 15).ToDateTimeString() // 2020-01-01 13:14:15 +carbon.Parse("2020-01-01").SetTime(13, 14, 90).ToDateTimeString() // 2020-01-01 13:15:30 + // Set year carbon.Parse("2020-02-29").SetYear(2021).ToDateString() // 2021-03-01 // Set year without overflowing month @@ -698,6 +721,13 @@ carbon.Parse("2020-08-05 13:14:15").WeekOfMonth() // 1 // Get day of the week carbon.Parse("2020-08-05 13:14:15").DayOfWeek() // 3 +// Get current year, month, day, hour, minute and second +carbon.Parse("2020-08-05 13:14:15").DateTime() // 2020,8,5,13,14,15 +// Get current year, month and day +carbon.Parse("2020-08-05 13:14:15").Date() // 2020,8,5 +// Get current hour, minute and second +carbon.Parse("2020-08-05 13:14:15").Time() // 13,14,15 + // Get current century carbon.Parse("2020-08-05 13:14:15").Century() // 21 // Get current decade @@ -722,21 +752,20 @@ carbon.Parse("2020-08-05 13:14:15").Minute() // 14 // Get current second carbon.Parse("2020-08-05 13:14:15").Second() // 15 // Get current millisecond -carbon.Parse("2020-08-05 13:14:15").Millisecond() // 1596604455000 +carbon.Parse("2020-08-05 13:14:15.999").Millisecond() // 999 // Get current microsecond -carbon.Parse("2020-08-05 13:14:15").Microsecond() // 1596604455000000 +carbon.Parse("2020-08-05 13:14:15.999").Microsecond() // 999000 // Get current nanosecond -carbon.Parse("2020-08-05 13:14:15").Nanosecond() // 1596604455000000000 +carbon.Parse("2020-08-05 13:14:15.999").Nanosecond() // 999000000 -// Get timestamp with second, Timestamp() is shorthand for TimestampWithSecond() +// Get timestamp with second carbon.Parse("2020-08-05 13:14:15").Timestamp() // 1596604455 -carbon.Parse("2020-08-05 13:14:15").TimestampWithSecond() // 1596604455 // Get timestamp with millisecond -carbon.Parse("2020-08-05 13:14:15").TimestampWithMillisecond() // 1596604455000 +carbon.Parse("2020-08-05 13:14:15").TimestampMilli() // 1596604455000 // Get timestamp with microsecond -carbon.Parse("2020-08-05 13:14:15").TimestampWithMicrosecond() // 1596604455000000 +carbon.Parse("2020-08-05 13:14:15").TimestampMicro() // 1596604455000000 // Get timestamp with nanosecond -carbon.Parse("2020-08-05 13:14:15").TimestampWithNanosecond() // 1596604455000000000 +carbon.Parse("2020-08-05 13:14:15").TimestampNano() // 1596604455000000000 // Get timezone name carbon.SetTimezone(carbon.PRC).Timezone() // CST @@ -775,9 +804,28 @@ carbon.Parse("2002-12-31 13:14:15").Age() // 18 // Output a string in date and time format carbon.Parse("2020-08-05 13:14:15").ToDateTimeString() // 2020-08-05 13:14:15 carbon.Parse("2020-08-05 13:14:15").ToDateTimeString(carbon.Tokyo) // 2020-08-05 14:14:15 +// Output a string in date and time with millisecond format +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMilliString() // 2020-08-05 13:14:15.999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMilliString(carbon.Tokyo) // 2020-08-05 14:14:15.999 +// Output a string in date and time with microsecond format +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMicroString() // 2020-08-05 13:14:15.999999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeMicroString(carbon.Tokyo) // 2020-08-05 14:14:15.999999 +// Output a string in date and time with nanosecond format +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeNanoString() // 2020-08-05 13:14:15.999999999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToDateTimeNanoString(carbon.Tokyo) // 2020-08-05 14:14:15.999999999 + // Output a string in short date and time format -carbon.Parse("2020-08-05 13:14:15").ToShortDateTimeString() // 20200805131415 -carbon.Parse("2020-08-05 13:14:15").ToShortDateTimeString(carbon.Tokyo) // 20200805141415 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeString() // 20200805131415 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeString(carbon.Tokyo) // 20200805141415 +// Output a string in short date and time with millisecond format +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMilliString() // 20200805131415.999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMilliString(carbon.Tokyo) // 20200805141415.999 +// Output a string in short date and time with microsecond format +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMicroString() // 20200805131415.999999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeMicroString(carbon.Tokyo) // 20200805141415.999999 +// Output a string in short date and time with nanosecond format +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeNanoString() // 20200805131415.999999999 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToShortDateTimeNanoString(carbon.Tokyo) // 20200805141415.999999999 // Output a in date format string carbon.Parse("2020-08-05 13:14:15").ToDateString() // 2020-08-05 @@ -845,20 +893,30 @@ carbon.Parse("2020-08-05 13:14:15").ToRfc1123zString(carbon.Tokyo) // Wed, 05 Au // Output a string in RFC2822 format carbon.Parse("2020-08-05 13:14:15").ToRfc2822String() // Wed, 05 Aug 2020 13:14:15 +0800 carbon.Parse("2020-08-05 13:14:15").ToRfc2822String(carbon.Tokyo) // Wed, 05 Aug 2020 14:14:15 +0900 -// Output a string in RFC3339 format -carbon.Parse("2020-08-05 13:14:15").ToRfc3339String() // 2020-08-05T13:14:15+08:00 -carbon.Parse("2020-08-05 13:14:15").ToRfc3339String(carbon.Tokyo) // 2020-08-05T14:14:15+09:00 // Output a string in RFC7231 format carbon.Parse("2020-08-05 13:14:15").ToRfc7231String() // Wed, 05 Aug 2020 13:14:15 GMT carbon.Parse("2020-08-05 13:14:15").ToRfc7231String(carbon.Tokyo) // Wed, 05 Aug 2020 14:14:15 GMT +// Output a string in RFC3339 format +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339String() // 2020-08-05T13:14:15+08:00 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339String(carbon.Tokyo) // 2020-08-05T14:14:15+09:00 +// Output a string in RFC3339 with millisecond format +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339MilliString() // 2020-08-05T13:14:15.999+08:00 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339MilliString(carbon.Tokyo) // 2020-08-05T13:14:15.999+09:00 +// Output a string in RFC3339 with microsecond format +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339MicroString() // 2020-08-05T13:14:15.999999+08:00 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339MicroString(carbon.Tokyo) // 2020-08-05T13:14:15.999999+09:00 +// Output a string in RFC3339 with nanosecond format +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339NanoString() // 2020-08-05T13:14:15.999999999+08:00 +carbon.Parse("2020-08-05T13:14:15.999999999+08:00").ToRfc3339NanoString(carbon.Tokyo) // 2020-08-05T13:14:15.999999999+09:00 + // Output a string in date and time format fmt.Sprintf("%s", carbon.Parse("2020-08-05 13:14:15")) // 2020-08-05 13:14:15 fmt.Sprintf("%s", carbon.Parse("2020-08-05 13:14:15", carbon.Tokyo)) // 2020-08-05 13:14:15 // Output a string in "2006-01-02 15:04:05.999999999 -0700 MST" format -carbon.Parse("2020-08-05 13:14:15").ToString() // 2020-08-05 13:14:15 +0800 CST -carbon.Parse("2020-08-05 13:14:15").ToString(carbon.Tokyo) // 2020-08-05 14:14:15 +0900 JST +carbon.Parse("2020-08-05 13:14:15").ToString() // 2020-08-05 13:14:15.999999 +0800 CST +carbon.Parse("2020-08-05 13:14:15").ToString(carbon.Tokyo) // 2020-08-05 14:14:15.999999 +0900 JST // Output a string by layout, Layout() is shorthand for ToLayoutString() carbon.Parse("2020-08-05 13:14:15").Layout("20060102150405") // 20200805131415 @@ -999,17 +1057,14 @@ carbon.Parse("2020-08-05 13:14:15", carbon.PRC).Lunar().IsPigYear() // false ```go type Person struct { - ID int64 `json:"id"` Name string `json:"name"` Age int `json:"age"` Birthday carbon.DateTime `json:"birthday"` GraduatedAt carbon.Date `json:"graduated_at"` - CreatedAt carbon.Time `json:"created_at"` - UpdatedAt carbon.Timestamp `json:"updated_at"` - DateTime1 carbon.TimestampWithSecond `json:"date_time1"` - DateTime2 carbon.TimestampWithMillisecond `json:"date_time2"` - DateTime3 carbon.TimestampWithMicrosecond `json:"date_time3"` - DateTime4 carbon.TimestampWithNanosecond `json:"date_time4"` + DateTime1 carbon.Timestamp `json:"date_time1"` + DateTime2 carbon.TimestampMilli `json:"date_time2"` + DateTime3 carbon.TimestampMicro `json:"date_time3"` + DateTime4 carbon.TimestampNano `json:"date_time4"` } ``` @@ -1017,17 +1072,14 @@ type Person struct { ```go person := Person { - ID: 1, - Name: "gouguoyin", - Age: 18, - Birthday: carbon.DateTime{carbon.Now().SubYears(18)}, - GraduatedAt: carbon.Date{carbon.Parse("2020-08-05 13:14:15")}, - CreatedAt: carbon.Time{carbon.Parse("2021-08-05 13:14:15")}, - UpdatedAt: carbon.Timestamp{carbon.Parse("2022-08-05 13:14:15")}, - DateTime1: carbon.TimestampWithSecond{carbon.Parse("2023-08-05 13:14:15")}, - DateTime2: carbon.TimestampWithMillisecond{carbon.Parse("2024-08-05 13:14:15")}, - DateTime3: carbon.TimestampWithMicrosecond{carbon.Parse("2025-08-05 13:14:15")}, - DateTime4: carbon.TimestampWithNanosecond{carbon.Parse("2025-08-05 13:14:15")}, + Name: "gouguoyin", + Age: 18, + Birthday: carbon.DateTime{carbon.Now().SubYears(18)}, + GraduatedAt: carbon.Date{carbon.Parse("2020-08-05 13:14:15")}, + DateTime1: carbon.Timestamp{carbon.Parse("2023-08-05 13:14:15")}, + DateTime2: carbon.TimestampMilli{carbon.Parse("2024-08-05 13:14:15")}, + DateTime3: carbon.TimestampMicro{carbon.Parse("2025-08-05 13:14:15")}, + DateTime4: carbon.TimestampNano{carbon.Parse("2025-08-05 13:14:15")}, } ``` @@ -1042,13 +1094,10 @@ if err != nil { fmt.Printf("%s", data) // Output { - "id": 1, "name": "gouguoyin", "age": 18, "birthday": "2003-07-16 16:22:02", "graduated_at": "2020-08-05", - "created_at": "13:14:15", - "updated_at": 1659676455, "date_time1": 1691212455, "date_time2": 1722834855000, "date_time3": 1754370855000000, @@ -1060,12 +1109,10 @@ fmt.Printf("%s", data) ```go jsonString := `{ - "id": 1, "name": "gouguoyin", "age": 18, "birthday": "2003-07-16 16:22:02", "graduated_at": "2020-08-05", - "updated_at": 1659676455, "date_time1": 1691212455, "date_time2": 1722834855000, "date_time3": 1754370855000000, @@ -1079,7 +1126,7 @@ if err != nil { } fmt.Printf("%+v", *person) // Output -{ID:1 Name:gouguoyin Age:18 Birthday:2003-07-16 16:22:02 GraduatedAt:2020-08-05 00:00:00 UpdatedAt:2022-08-05 13:14:15 DateTime1:2023-08-05 13:14:15 DateTime2:2024-08-05 13:14:15 DateTime3:2025-08-05 13:14:15 DateTime4:2025-08-05 13:14:15} +{Name:gouguoyin Age:18 Birthday:2003-07-16 16:22:02 GraduatedAt:2020-08-05 00:00:00 DateTime1:2023-08-05 13:14:15 DateTime2:2024-08-05 13:14:15 DateTime3:2025-08-05 13:14:15 DateTime4:2025-08-05 13:14:15} ``` ##### I18n