Documentation ¶
Overview ¶
Package gtime 提供了测量和显示时间的功能。
本包应该尽量减少与其他包的依赖。 md5:34aae194a36b5e34
Index ¶
- Constants
- func Date() string
- func X取函数执行时长(执行函数 func()) time.Duration
- func X取当前日期时间() string
- func X取当前日期时间ISO8601() string
- func X取当前日期时间RFC822() string
- func X取文本时间戳微秒() string
- func X取文本时间戳毫秒() string
- func X取文本时间戳秒() string
- func X取文本时间戳纳秒() string
- func X取时间戳微秒() int64
- func X取时间戳毫秒() int64
- func X取时间戳秒() int64
- func X取时间戳纳秒() int64
- func X文本取时长(文本 string) (纳秒 time.Duration, 错误 error)
- func X设置时区(时区 string) (错误 error)
- type Time
- func StrToTimeFormat别名(str string, format string) (*Time, error)
- func X创建(参数 ...interface{}) *Time
- func X创建并从文本(文本时间 string) *Time
- func X创建并从时间戳(时间戳 int64) *Time
- func X创建并按Layout格式文本(文本时间 string, 格式 string) *Time
- func X创建并按Time(t time.Time) *Time
- func X创建并按当前时间() *Time
- func X创建并按给定格式文本(文本时间 string, 格式 string) *Time
- func X解析文本(文本 string, 格式 ...string) *Time
- func X转换文本(文本时间 string, 格式 ...string) (*Time, error)
- func X转换文本Layout(文本时间 string, 格式 string) (*Time, error)
- func X转换时区(文本时间 string, 新时区 string, 旧时区 ...string) (*Time, error)
- func (t *Time) DeepCopy() interface{}
- func (t *Time) IsZero() bool
- func (t Time) MarshalJSON() ([]byte, error)
- func (t *Time) NoValidation()
- func (t *Time) Scan(value interface{}) error
- func (t *Time) String() string
- func (t *Time) UnmarshalJSON(b []byte) error
- func (t *Time) UnmarshalText(data []byte) error
- func (t *Time) Value() (driver.Value, error)
- func (t *Time) X取Layout格式文本(layout格式 string) string
- func (t *Time) X取UTC时区() *Time
- func (t *Time) X取全年第几天() int
- func (t *Time) X取全年第几星期() int
- func (t *Time) X取副本() *Time
- func (t *Time) X取副本23点59分59秒(纳秒精度 ...bool) *Time
- func (t *Time) X取副本59分59秒(纳秒精度 ...bool) *Time
- func (t *Time) X取副本59秒(纳秒精度 ...bool) *Time
- func (t *Time) X取副本半年末23点59分59秒(纳秒精度 ...bool) *Time
- func (t *Time) X取副本半年第一天() *Time
- func (t *Time) X取副本周末23点59分59秒(纳秒精度 ...bool) *Time
- func (t *Time) X取副本周第一天() *Time
- func (t *Time) X取副本季度第一天() *Time
- func (t *Time) X取副本季末23点59分59秒(纳秒精度 ...bool) *Time
- func (t *Time) X取副本年末23点59分59秒(纳秒精度 ...bool) *Time
- func (t *Time) X取副本年第一天() *Time
- func (t *Time) X取副本并按Layout格式(layout格式 string) *Time
- func (t *Time) X取副本忽略分钟秒() *Time
- func (t *Time) X取副本忽略小时分钟秒() *Time
- func (t *Time) X取副本忽略秒() *Time
- func (t *Time) X取副本月末23点59分59秒(纳秒精度 ...bool) *Time
- func (t *Time) X取副本月第一天() *Time
- func (t *Time) X取当前月份总天数() int
- func (t *Time) X取微秒() int
- func (t *Time) X取文本时间ISO8601() string
- func (t *Time) X取文本时间RFC822() string
- func (t *Time) X取文本时间戳微秒() string
- func (t *Time) X取文本时间戳毫秒() string
- func (t *Time) X取文本时间戳秒() string
- func (t *Time) X取文本时间戳纳秒() string
- func (t *Time) X取时间戳微秒() int64
- func (t *Time) X取时间戳毫秒() int64
- func (t *Time) X取时间戳秒() int64
- func (t *Time) X取时间戳纳秒() int64
- func (t *Time) X取月份() int
- func (t *Time) X取本地时区() *Time
- func (t *Time) X取格式文本(格式 string) string
- func (t *Time) X取毫秒() int
- func (t *Time) X取秒() int
- func (t *Time) X取纳秒() int
- func (t *Time) X取纳秒时长(u *Time) time.Duration
- func (t *Time) X向上舍入(时长 time.Duration) *Time
- func (t *Time) X向下舍入(时长 time.Duration) *Time
- func (t *Time) X增加文本时长(时长 string) (*Time, error)
- func (t *Time) X增加时长(时长 time.Duration) *Time
- func (t *Time) X增加时间(年 int, 月 int, 日 int) *Time
- func (t *Time) X按格式取副本(格式 string) *Time
- func (t *Time) X是否为闰年() bool
- func (t *Time) X是否之前(u *Time) bool
- func (t *Time) X是否之后(u *Time) bool
- func (t *Time) X是否相等(u *Time) bool
- func (t *Time) X格式设置(格式 string) *Time
- func (t *Time) X设置Layout格式(layout格式 string) *Time
- func (t *Time) X转换时区(时区 string) (*Time, error)
- func (t *Time) X转换时区Location(时区 *time.Location) *Time
Examples ¶
Constants ¶
const ( D = 24 * time.Hour H = time.Hour M = time.Minute S = time.Second MS = time.Millisecond US = time.Microsecond NS = time.Nanosecond )
Variables ¶
This section is empty.
Functions ¶
func Date ¶
func Date() string
Date 返回当前日期的字符串,格式为 "2006-01-02"。 md5:e4ebaf573ffc4bd6
Example ¶
package main import ( "fmt" gtime "github.com/888go/goframe/os/gtime" ) func main() { fmt.Println(gtime.Date()) // May Output: // 2006-01-02 }
Output:
func X取当前日期时间 ¶
func X取当前日期时间() string
X取当前日期时间 返回当前日期时间的字符串格式,例如 "2006-01-02 15:04:05"。 md5:a1afd811808be0ca
func X取当前日期时间ISO8601 ¶
func X取当前日期时间ISO8601() string
X取当前日期时间ISO8601 返回当前日期时间,格式为 "2006-01-02T15:04:05-07:00"。 md5:ab2ef4b60100081e
func X取当前日期时间RFC822 ¶
func X取当前日期时间RFC822() string
X取当前日期时间RFC822 返回当前日期时间的 X取当前日期时间RFC822 格式,例如 "Mon, 02 Jan 06 15:04 MST"。 md5:a6362395180caeda
func X取文本时间戳微秒 ¶
func X取文本时间戳微秒() string
X取文本时间戳微秒是一个方便的方法,它获取并返回微秒级别的时间戳作为字符串。 md5:2930c4dc2c5feaae
func X取文本时间戳秒 ¶
func X取文本时间戳秒() string
X取文本时间戳秒 是一个方便的方法,它获取并返回时间戳(以秒为单位)的字符串形式。 md5:f638769b91eb1dd5
func X取文本时间戳纳秒 ¶
func X取文本时间戳纳秒() string
X取文本时间戳纳秒 是一个便捷方法,用于获取并以字符串形式返回纳秒级的时间戳。 md5:ff842fbe274c5052
func X文本取时长 ¶
X文本取时长 parses a duration string. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as "300ms", "-1.5h", "1d" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h", "d".
Very note that it supports unit "d" more than function time.X文本取时长.
func X设置时区 ¶
X设置时区 设置当前整个进程的时间区域。 参数 `zone` 是一个指定对应时区的区域字符串,例如:Asia/Shanghai。
请注意: 1. 应在导入 "time" 包之前调用此函数。 2. 此函数仅需调用一次。 3. 请参阅问题:https://github.com/golang/go/issues/34814 md5:4d2c0d7e82a0e0f8
Types ¶
type Time ¶
type Time struct {
// contains filtered or unexported fields
}
Time 是一个包装了 time.Time 的结构,用于添加额外的功能。 md5:96d9b7cb3af14206
func StrToTimeFormat别名 ¶
StrToTimeFormat别名 函数将字符串 `str` 根据给定的格式 `format` 解析为 *Time 对象。 参数 `format` 的格式类似于 "Y-m-d H:i:s"。 md5:0eb1a22261a21da1
func X创建 ¶
func X创建(参数 ...interface{}) *Time
X创建 函数创建并返回一个 Time 对象,使用给定的参数。可选参数是一个时间对象,可以是以下类型:time.Time/*time.Time、字符串或整数。 例子: X创建("2024-10-29") X创建(1390876568) X创建(t) // t 是 time.Time 类型。 md5:6951100c014c4ba9
func X创建并从时间戳 ¶
X创建并从时间戳 根据给定的时间戳创建并返回一个 Time 对象, 该时间戳可以是秒到纳秒的精度。 例如:1600443866 和 1600443866199266000 都被视为有效的时间戳数值。 md5:6a84edd691c97a4f
func X创建并按Layout格式文本 ¶
X创建并按Layout格式文本 根据给定的字符串和标准库格式(如:2006-01-02 15:04:05)创建并返回一个Time对象。 注意,如果出现错误,它将返回nil。 md5:027f4d0876baa1a8
func X创建并按给定格式文本 ¶
X创建并按给定格式文本 通过给定的字符串和自定义格式(如:Y-m-d H:i:s)创建并返回一个Time对象。 注意,如果发生错误,它将返回nil。 md5:ed9966a0a8156f1d
func X解析文本 ¶
X解析文本 从内容字符串中提取时间信息,然后解析并返回一个 *Time 类型的对象。 如果内容中有多个时间字符串,它将返回第一个时间信息。 如果提供了 `format`,它只会检索并解析与之匹配的第一个时间信息。 md5:37e6a9bec5011038
func X转换文本 ¶
X转换文本 将字符串转换为 *Time 对象。它也支持时间戳字符串。 参数 `format` 是不必要的,用于指定转换格式,如 "Y-m-d H:i:s"。 如果提供了 `format`,它的行为与 StrToTimeFormat 函数相同。 如果没有提供 `format`,它将把字符串作为 "标准" 日期时间字符串进行转换。 注意,如果 `str` 中没有日期字符串,它将失败并返回错误。 md5:5e4dd2ec67cb758d
func X转换文本Layout ¶
X转换文本Layout 将字符串 `str` 解析为具有给定格式 `layout` 的 *Time 对象。参数 `layout` 应使用标准库中的格式,如 "2006-01-02 15:04:05"。 md5:54702732831e3f2e
func X转换时区 ¶
X转换时区 将字符串格式的时间`strTime`从`fromZone`时区转换为`toZone`时区。 参数`fromZone`是可选的,默认情况下它代表当前所在的时区。 md5:9c73950cf06cb368
func (*Time) DeepCopy ¶
func (t *Time) DeepCopy() interface{}
DeepCopy实现当前类型的深拷贝接口。 md5:9cfbcb08109f6ce1
func (*Time) IsZero ¶
IsZero报告是否`t`表示零时间点,即UTC时间的1970年1月1日00:00:00。 md5:4e2b46d4fa63a878
Example ¶
IsZero报告是否`t`表示零时间点,即UTC时间的1970年1月1日00:00:00。 md5:4e2b46d4fa63a878
package main import ( "fmt" gtime "github.com/888go/goframe/os/gtime" ) func main() { gt := gtime.X创建("2018-08-08 08:08:08") fmt.Println(gt.IsZero()) }
Output: false
func (Time) MarshalJSON ¶
MarshalJSON 实现了 json.Marshal 接口的 MarshalJSON 方法。注意,不要使用 `(t *Time) MarshalJSON() ([]byte, error)`,因为它会丢失 Time 结构体的 MarshalJSON 接口实现。 md5:daef718235a856ce
Example ¶
package main import ( "encoding/json" "fmt" gtime "github.com/888go/goframe/os/gtime" ) func main() { type Person struct { Name string `json:"name"` Birthday *gtime.Time `json:"birthday"` } p := new(Person) p.Name = "goframe" p.Birthday = gtime.X创建("2018-08-08 08:08:08") j, _ := json.Marshal(p) fmt.Println(string(j)) }
Output: {"name":"goframe","birthday":"2018-08-08 08:08:08"}
func (*Time) NoValidation ¶
func (t *Time) NoValidation()
NoValidation 标记这个结构体对象将不会被 gvalid 包进行验证。 md5:5241ee7a51fb1912
func (*Time) String ¶
String 返回当前时间对象作为字符串。 md5:4f5a1f3896ca049d
Example ¶
String 返回当前时间对象作为字符串。 md5:4f5a1f3896ca049d
package main import ( "fmt" "reflect" gtime "github.com/888go/goframe/os/gtime" ) func main() { gt := gtime.X创建("2018-08-08 08:08:08") t1 := gt.String() fmt.Println(t1) fmt.Println(reflect.TypeOf(t1)) }
Output: 2018-08-08 08:08:08 string
func (*Time) UnmarshalJSON ¶
UnmarshalJSON实现了json.Unmarshal接口的UnmarshalJSON方法。 md5:f6766b88cf3d63c2
Example ¶
package main import ( "encoding/json" "fmt" gtime "github.com/888go/goframe/os/gtime" ) func main() { type Person struct { Name string `json:"name"` Birthday *gtime.Time `json:"birthday"` } p := new(Person) src := `{"name":"goframe","birthday":"2018-08-08 08:08:08"}` json.Unmarshal([]byte(src), p) fmt.Println(p) // 输出 // &{goframe 2018-08-08 08:08:08} // // 这段Go代码的注释表示这是一个输出(Output),内容是关于一个结构体(&{...})的引用,该结构体名为goframe,包含了日期和时间信息(2018-08-08 08:08:08)。 // md5:a93ddd4a9e34a1af }
Output:
func (*Time) UnmarshalText ¶
UnmarshalText实现了encoding.TextUnmarshaler接口。 注意,它会覆盖与`time.Time`相同的实现者。 md5:8aa957653e42443a
func (*Time) Value ¶
Value是database/sql/driver包中提供Value方法的接口,用于从golang变量获取值并将其插入数据库。 md5:f99b99a521257946
func (*Time) X取Layout格式文本 ¶
X取Layout格式文本使用stdlib布局格式化时间并返回格式化后的结果。 md5:bf29a9bede753c3a
func (*Time) X取副本23点59分59秒 ¶
X取副本23点59分59秒 克隆并返回一个新的时间,该时间设置为当天的结束,即时间部分被设置为 23:59:59。 md5:77a284f48ab6cac4
func (*Time) X取副本59分59秒 ¶
X取副本59分59秒克隆并返回一个新的时间,其中分钟和秒都设置为59。 md5:ea49434e1e5b1bbb
func (*Time) X取副本半年末23点59分59秒 ¶
X取副本半年末23点59分59秒 克隆并返回一个新的时间,该时间设置为半年的结束时刻,具体时间为 23:59:59。 md5:2f3662f357ee5f6d
func (*Time) X取副本周末23点59分59秒 ¶
X取副本周末23点59分59秒 创建并返回一个新的时间,该时间表示一周的结束,并将其时间设置为23:59:59。 md5:eb899f421cfb25b4
func (*Time) X取副本季末23点59分59秒 ¶
X取副本季末23点59分59秒克隆并返回一个新的时间,它是季度结束,其时间设置为23:59:59。 md5:c2e7dca6753c6e99
func (*Time) X取副本年末23点59分59秒 ¶
X取副本年末23点59分59秒 克隆并返回一个新的时间,该时间是当年的年末,时间设置为23:59:59。 md5:33b38d1d0badf6ad
func (*Time) X取副本并按Layout格式 ¶
X取副本并按Layout格式 使用stdlib布局格式化时间,并返回一个新的Time对象。 md5:6849149696989dbb
func (*Time) X取副本忽略小时分钟秒 ¶
X取副本忽略小时分钟秒克隆并返回一个新的时间,它是新的一天的开始,其时间被设置为00:00:00。 md5:a9262cc6eafed6da
func (*Time) X取副本月末23点59分59秒 ¶
X取副本月末23点59分59秒克隆并返回一个新的时间,它是当月的结束,时间设置为23:59:59。 md5:6c2259b48332a891
func (*Time) X取文本时间ISO8601 ¶
X取文本时间ISO8601将时间格式化为X取文本时间ISO8601标准格式,并以字符串形式返回。 md5:6ddd62f8570c26f4
func (*Time) X取文本时间RFC822 ¶
X取文本时间RFC822 根据 X取文本时间RFC822 格式将时间转换为字符串并返回。 md5:1b6d66ac42df19de
func (*Time) X取格式文本 ¶
X取格式文本 使用自定义`format`格式化并返回格式化结果。如果你想要遵循stdlib(标准库)的布局,可以参考 Layout 方法。 md5:8f91fb876a2c8a6d
func (*Time) X取纳秒时长 ¶
X取纳秒时长 返回持续时间 t-u。如果结果超过了能存储在 Duration 类型中的最大(或最小) 值,那么将返回最大(或最小)的持续时间。 要计算 t-d(其中 d 为一个持续时间),请使用 t.Add(-d)。 md5:c975e5087c03d3b9
func (*Time) X向上舍入 ¶
X向上舍入 返回将 t 四舍五入到 d 的倍数的结果(从零时间开始)。对于半等值,四舍五入行为向上取整。 如果 d 小于等于 0,X向上舍入 会返回 t 并移除任何单调时钟读数,但保持不变。
X向上舍入 以绝对的自零时间以来的时间段进行操作;它不处理时间的呈现形式。因此,X向上舍入(Hour) 可能返回一个非零分钟的时间,具体取决于时间的 Location。 md5:b2557220790fc058
func (*Time) X向下舍入 ¶
X向下舍入 返回将时间t向下舍入到d的倍数的结果(从零时间开始)。 如果d<=0,X向下舍入会返回t,但去除任何单调时钟读数,否则保持不变。
X向下舍入是基于时间从零时间点起的绝对持续时间来进行操作的; 它并不作用于时间的展示形式。因此,X向下舍入(Hour)可能返回一个分钟数非零的时间, 这取决于该时间的位置信息(Location)。 md5:f72e0e00b245e691
func (*Time) X是否相等 ¶
X是否相等 函数报告 t 和 u 是否表示相同的时刻。 即使两个时间在不同的时区,它们也可以相等。 例如,CEST 的 6:00 +0200 和 UTC 的 4:00 是相等的。 查看 Time 类型的文档,了解使用 == 操作符比较时间值时可能遇到的问题; 大多数代码应使用 X是否相等 而非 ==。 md5:a28e147d11d5fe0f
func (*Time) X设置Layout格式 ¶
X设置Layout格式 使用stdlib布局格式化`t`。 md5:fb1407c2e7429179