创建gtime.Time
对象可以通过标准库time.Time
对象、Unix
时间戳、时间字符串(如:2018-07-18 12:01:00
)、自定义时间字符串(需要给定格式,支持自定义格式及标准库格式)。
可以通过gtime.New
方法创建gtime.Time
对象,该方法支持time.Time
、时间戳、时间字符串创建对象。其中时间戳支持到纳秒的时间整型长度。 例如:=
// 通过时间字符串创建
gtime.New("2020-10-24 12:00:00")
// 通过time.Time对象创建
gtime.New(time.Now())
// 通过时间戳(秒)创建
gtime.New(1603710586)
// 通过时间戳(纳秒)创建
gtime.New(1603710586660409000)
此外,时间字符串支持常见时间类型,例如:
2017-12-14 04:51:34 +0805 LMT
2017-12-14 04:51:34 +0805 LMT
2006-01-02T15:04:05Z07:00
2014-01-17T01:19:15+08:00
2018-02-09T20:46:17.897Z
2018-02-09 20:46:17.897
2018-02-09T20:46:17Z
2018-02-09 20:46:17
2018/10/31 - 16:38:46
2018-02-09
2018.02.09
01-Nov-2018 11:50:28
01/Nov/2018 11:50:28
01.Nov.2018 11:50:28
01.Nov.2018:11:50:28
日期连接符号支持"-"、"/"、"."
package main
import (
"fmt"
"github.com/gogf/gf/v2/os/gtime"
)
func main() {
formats := []string{
"Y-m-d H:i:s.u",
"D M d H:i:s T O Y",
"Time is: h:i:s a",
"2006-01-02T15:04:05.000000000Z07:00",
}
t := gtime.Now()
for _, f := range formats {
fmt.Println(t.Format(f))
}
}
在该示例中,我们给定了四种format
格式,并将当前时间用这四种格式转换后打印出来。执行后,输出结果如下:
2018-07-22 11:17:13.797
Sun Jul 22 11:17:13 CST +0800 2018
Time is: 11:17:13 am
2006-01-02CST15:04:05.000000000Z07:00
可以看到,这个示例演示了几个需要注意的地方:
符号转义该字符,这样时间格式解析器会认为该字符不是格式化字符,而是普通字母。因此这里的第三个字符串示例输出为:Time is: 11:17:13 am
Format
方法接收的是自定义的时间格式化语法(如:Y-m-d H:i:s
),而非标准库的时间格式语法(如:2006-01-02 15:04:05
),因此在这里的第四个字符串示例中原样输出参数值;package main
import (
"fmt"
"github.com/gogf/gf/v2/os/gtime"
)
func main() {
formats := []string{
"2006-01-02 15:04:05.000",
"Mon Jan _2 15:04:05 MST 2006",
"Time is: 03:04:05 PM",
"2006-01-02T15:04:05.000000000Z07:00 MST",
}
t := gtime.Now()
for _, f := range formats {
fmt.Println(t.Layout(f))
}
}
在该示例中,我们使用四种标准库的时间格式化语法格式化当前的时间并输出结果到终端。执行后,输出结果为:
2018-07-22 11:28:13.945
Sun Jul 22 11:28:13 CST 2018
Time is: 11:28:13 AM
2018-07-22T11:28:13.945153275+08:00 CST
有几个需要说明的地方:
Format
方法,后者使用Layout
方法行格式化,相互独立,互不冲突,无法混用;
package main
import (
"fmt"
"github.com/gogf/gf/v2/os/gtime"
"time"
)
func main() {
// 去年今日,系统时间
fmt.Println(gtime.Now().AddDate(-1, 0, 0).Format("Y-m-d"))
// 去年今日,UTC时间
fmt.Println(gtime.Now().AddDate(-1, 0, 0).Format("Y-m-d H:i:s T"))
fmt.Println(gtime.Now().AddDate(-1, 0, 0).UTC().Format("Y-m-d H:i:s T"))
// 下个月1号凌晨0点整
fmt.Println(gtime.Now().AddDate(0, 1, 0).Format("Y-m-01 00:00:00"))
// 1个小时前
fmt.Println(gtime.Now().Add(-time.Hour).Format("Y-m-d H:i:s"))
}
执行后,输出结果为:
2020-09-19
2020-09-19 15:51:48 CST
2020-09-19 07:51:48 UTC
2021-10-01 00:00:00
2021-09-19 14:51:48
现在让我们进入交互式 Python 命令行,尝试一下 Django 为你创建的各种 API。通过以下命令打开 Python 命令行:... py manage.py...
要比较两个模型实例,使用标准的 Python 比较操作符,两个等号: ==。实际上,这比较了两个模型实例的主键值。使用上文的 ...
Web 服务Web 服务是一个基于网络的功能,可被 web 应用通过 web 网络协议获取。web 服务开发主要包含以下三方面:创建 web 服务...
WebSecurity - ResetPassword()WebSecurity 对象定义 ResetPassword() 方法使用密码令牌重置用户密码。C# 和 VB 语法W...
ASP.NET TextBox Rows 属性 TextBox 控件定义和用法 Rows 属性用于设置或返回 TextBox 控件的高度。 该属性仅在 TextMode="Multi...
ASP.NET RadioButtonList CellPadding 属性 RadioButtonList 控件定义和用法 CellPadding 属性用于设置或返回单元格边框与内容之...
ASP.NET ListItem Text 属性 ListItem 控件定义和用法 Text 属性用于设置或返回 ListItem 控件的文本。 语法asp:ListItem Text="...