# go-xdate **Repository Path**: andyfoo/go-xdate ## Basic Information - **Project Name**: go-xdate - **Description**: XDate 是对golang日期的扩展,format格式参考php date,不用记那些烦人的日期数字了 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-04-06 - **Last Updated**: 2023-08-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # XDate XDate 是对golang日期的扩展,format格式参考php date,不用记那些烦人的日期数字了 **xdate. Now().PFormat("Y-m-d H:i:s")** >>> 2021-04-05 22:51:52 作者:Andyfoo [http://andyfoo.com](http://andyfoo.com) [http://pslib.com](http://pslib.com) **示例:** ```go package main import ( "fmt" "github.com/Andyfoo/go-xdate" ) func main() { fmt.Println(xdate.Now().Format("2006-01-02 15:04:05")) fmt.Println(xdate.Unix(1588009973, 0).Format("2006-01-02 15:04:05")) fmt.Println(xdate.PFormatConv("Y-m-d H:i:s")) fmt.Println(xdate.Now().PFormat("Y-m-d H:i:s")) fmt.Println(xdate.Now().Format(xdate.YMD)) fmt.Println(xdate.Now().UTC().Format(xdate.TT)) fmt.Println(xdate.Now().UTC().PFormat("Y-m-d H:i:s")) fmt.Println(xdate.Now().Unix()) fmt.Println(xdate.Now().UnixMilli()) fmt.Println(xdate.Now().UnixNano()) fmt.Println(xdate.Now().Weekday()) fmt.Println(xdate.Now().WeekdayStr(xdate.WeekType_cn)) fmt.Println(xdate.Now().WeekdayStr(xdate.WeekType_cnShort)) fmt.Println(xdate.Now().WeekdayStr(xdate.WeekType_en)) fmt.Println(xdate.Now().WeekdayStr(xdate.WeekType_enShort)) fmt.Println(xdate.Str2Time("2018-04-23 23:11:23", "Y-m-d H:i:s").PFormat("Y-m-d H:i:s")) fmt.Println(xdate.Now().Offset(xdate.DateField_DAY, 3).PFormat("Y-m-d H:i:s")) } ``` **支持的格式字符** ```html format 字符 日 --- --- d 月份中的第几天,有前导零的 2 位数字 01 到 31 D 星期中的第几天,文本表示,3 个字母 Mon 到 Sun j 月份中的第几天,没有前导零 1 到 31 l(“L”的小写字母) 星期几,完整的文本格式 Sunday 到 Saturday z 年份中的第几天 0 到 365 星期 --- --- W ISO-8601 格式年份中的第几周,每周从星期一开始 例如:42(当年的第 42 周) 月 --- --- F 月份,完整的文本格式,例如 January 或者 March January 到 December m 数字表示的月份,有前导零 01 到 12 M 三个字母缩写表示的月份 Jan 到 Dec n 数字表示的月份,没有前导零 1 到 12 年 --- --- Y 4 位数字完整表示的年份 例如:1999 或 2003 y 2 位数字表示的年份 例如:99 或 03 时间 --- --- a 小写的上午和下午值 am 或 pm A 大写的上午和下午值 AM 或 PM g 小时,12 小时格式,没有前导零 1 到 12 h 小时,12 小时格式,有前导零 01 到 12 H 小时,24 小时格式,有前导零 00 到 23 i 有前导零的分钟数 00 到 59> s 秒数,有前导零 00 到 59> u 毫秒,.000000 (比php多一个小数点) 时区 --- --- O 与格林威治时间相差的小时数 例如:+0200 P 与格林威治时间(GMT)的差别,小时和分钟之间有冒号分隔 例如:+02:00 T 本机所在的时区 例如:EST,MDT 完整的日期/时间 --- --- c ISO 8601 格式的日期 2004-02-12T15:19:21+00:00 r RFC 822 格式的日期 例如:Thu, 21 Dec 2000 16:01:07 +0200 ``` **API:** ```go func NowDateStr() string func NowDateTimeStr() string func NowTimeStr() string func NowUtcDateStr() string func NowUtcDateTimeStr() string func NowUtcTimeStr() string type XDate func Date(day int, month int, year int) XDate func DateTime(day int, month int, year int, hour int, min int, sec int) XDate func Now() XDate func Str2Time(str string, _format ...string) XDate func Time(t time.Time) XDate func Unix(sec int64, nsec int64) XDate func (t XDate) DateStr() string func (t XDate) DateTimeStr() string func (t XDate) DayBeginDateTimeStr() string func (t XDate) DayEndDateTimeStr() string func (t XDate) Local() XDate func (t XDate) Offset(field DateField, offset int) XDate func (t XDate) PFormat(pformat string) string func (t XDate) TimeStr() string func (t XDate) UTC() XDate func (t XDate) UnixMilli() int64 func (t XDate) Weekday() int func (t XDate) WeekdayStr(wt WeekType) string ```