GoFrame 是一个开源的、高性能的 Web 开发框架,它是基于 Go 语言编写的,由国内开发者维护。GoFrame 提供了一套完整的解决方案,可以帮助开发者快速构建出高性能、高可用的 Web 应用。
GoFrame 教程是专门为初学者准备的,旨在帮助初学者快速入门 GoFrame 框架。教程中包含了 GoFrame 的安装、使用以及相关 API 的详细介绍,并且还有一些实例代码,帮助初学者快速上手 GoFrame。
// 安装 GoFrame go get -u github.com/goframe/goframe // 创建新应用 goframe new myapp // 运行应用 cd myapp && goframe run
接口文档:https://pkg.go.dev/github.com/gogf/gf/v2/os/gtime
方法比较简单,比较常用的是以下几个方法:
Timestamp
用于获得当前时间戳,TimestampMilli
、TimestampMicro
及TimestampNano
用于获得当前的毫秒、微秒和纳秒值。
Date
和Datetime
用于获得当前日期及当前日期时间。
SetTimeZone
用于设置当前进程的全局时区。
创建时间对象及获取当前时间戳。
package main
import (
"fmt"
"github.com/gogf/gf/v2/os/gtime"
)
func main() {
fmt.Println("Date :", gtime.Date())
fmt.Println("Datetime :", gtime.Datetime())
fmt.Println("Second :", gtime.Timestamp())
fmt.Println("Millisecond:", gtime.TimestampMilli())
fmt.Println("Microsecond:", gtime.TimestampMicro())
fmt.Println("Nanosecond :", gtime.TimestampNano())
}
执行后,输出结果为:
Date : 2018-07-22
Datetime : 2018-07-22 11:52:22
Second : 1532231542
Millisecond: 1532231542688
Microsecond: 1532231542688688
Nanosecond : 1532231542688690259
时区的全局设置必须要在标准库的time
包import
之前调用。
package main
import (
"fmt"
"github.com/gogf/gf/v2/os/gtime"
"time"
)
func main() {
// 先使用标准库打印当前时间
fmt.Println(time.Now().String())
// 设置进程全局时区
err := gtime.SetTimeZone("Asia/Tokyo")
if err != nil {
panic(err)
}
// 使用gtime获取当前时间
fmt.Println(gtime.Now().String())
// 使用标准库获取当前时间
fmt.Println(time.Now().String())
}
执行后,输出结果为:
2018-11-21 22:50:56.723429 +0800 CST m=+0.000649366
2018-11-21 23:50:56
2018-11-21 23:50:56.723832 +0900 JST m=+0.001052780
除了通过New
方法外,也可以通过StrToTime
根据常见的时间字符串解析生成gtime.Time
对象,常见的时间字符串如下:
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/glog"
"github.com/gogf/gf/v2/os/gtime"
"time"
)
func main() {
array := []string{
"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.02.09 20:46:17",
"2018-02-09",
"2017/12/14 04:51:34 +0805 LMT",
"2018/02/09 12:00:15",
"01/Nov/2018:13:28:13 +0800",
"01-Nov-2018 11:50:28 +0805 LMT",
"01-Nov-2018T15:04:05Z07:00",
"01-Nov-2018T01:19:15+08:00",
"01-Nov-2018 11:50:28 +0805 LMT",
"01/Nov/2018 11:50:28",
"01/Nov/2018:11:50:28",
"01.Nov.2018:11:50:28",
"01/Nov/2018",
}
cstLocal, _ := time.LoadLocation("Asia/Shanghai")
for _, s := range array {
if t, err := gtime.StrToTime(s); err == nil {
fmt.Println(s)
fmt.Println(t.UTC().String())
fmt.Println(t.In(cstLocal).String())
} else {
glog.Error(s, err)
}
fmt.Println()
}
}
在这个示例中,将部分时间格式串使用StrToTime
方法转换为gtime.Time
对象,并输出该事件的UTC
时间和CST
时间(上海时区时间)。 执行后,输出结果为:
2017-12-14 04:51:34 +0805 LMT
2017-12-13 20:46:34
2017-12-14 04:46:34 +0800 CST
2006-01-02T15:04:05Z07:00
2006-01-02 22:04:05
2006-01-03 06:04:05 +0800 CST
2014-01-17T01:19:15+08:00
2014-01-16 17:19:15
2014-01-17 01:19:15 +0800 CST
2018-02-09T20:46:17.897Z
2018-02-09 20:46:17
2018-02-10 04:46:17.897 +0800 CST
2018-02-09 20:46:17.897
2018-02-09 12:46:17
2018-02-09 20:46:17.897 +0800 CST
2018-02-09T20:46:17Z
2018-02-09 20:46:17
2018-02-10 04:46:17 +0800 CST
2018-02-09 20:46:17
2018-02-09 12:46:17
2018-02-09 20:46:17 +0800 CST
2018.02.09 20:46:17
2018-02-09 12:46:17
2018-02-09 20:46:17 +0800 CST
2018-02-09
2018-02-08 16:00:00
2018-02-09 00:00:00 +0800 CST
2017/12/14 04:51:34 +0805 LMT
2017-12-13 20:46:34
2017-12-14 04:46:34 +0800 CST
2018/02/09 12:00:15
2018-02-09 04:00:15
2018-02-09 12:00:15 +0800 CST
01/Nov/2018:13:28:13 +0800
2018-11-01 05:28:13
2018-11-01 13:28:13 +0800 CST
01-Nov-2018 11:50:28 +0805 LMT
2018-11-01 03:45:28
2018-11-01 11:45:28 +0800 CST
01-Nov-2018T15:04:05Z07:00
2018-11-01 22:04:05
2018-11-02 06:04:05 +0800 CST
01-Nov-2018T01:19:15+08:00
2018-10-31 17:19:15
2018-11-01 01:19:15 +0800 CST
01-Nov-2018 11:50:28 +0805 LMT
2018-11-01 03:45:28
2018-11-01 11:45:28 +0800 CST
01/Nov/2018 11:50:28
2018-11-01 03:50:28
2018-11-01 11:50:28 +0800 CST
01/Nov/2018:11:50:28
2018-11-01 03:50:28
2018-11-01 11:50:28 +0800 CST
01.Nov.2018:11:50:28
2018-11-01 03:50:28
2018-11-01 11:50:28 +0800 CST
01/Nov/2018
2018-10-31 16:00:00
2018-11-01 00:00:00 +0800 CST
ASP.NET CalendarDay IsSelectable 属性 CalendarDay 控件定义和用法 IsSelectable 属性用于获取或设置日期是否为可选。 如果日...
ASP.NET BorderStyle 属性 Style 控件定义和用法 BorderStyle 属性用于设置或返回控件的边框样式。 语法asp:webcontrol id="id" ...
ASP.NET HtmlTableCell 控件 HTML 服务器控件定义和用法 HtmlTableCell 控件用于控制 td 和 th 元素。在 HTML 中,这些元素用于...
ASP.NET BulletedList BulletImageUrl 属性 BulletedList 控件定义和用法 BulletImageUrl 属性用于获取或设置当 BulletStyle 属...
xAxis.splitArea.areaStyle |Object分隔区域的样式设置。xAxis.splitArea.areaStyle.color |Array[ default: ['rgba(250,250...
xAxis.data[i].textStyle.rich |Object在 xAxis 的 rich里面,您可以对其富文本样式进行自定义。在标签中,很多丰富的效果都是通...
本节将对 yAxis 组件中的坐标轴分隔线做出详细的样式设置介绍,通过本节您将会了解到怎么设置 y 坐标轴分隔线颜色的设置、线宽的...
在 ECharts 中使用 textStyle 来对 yAxis 的坐标轴指示器的文本标签进行文字样式的设置。我们利用它可以设置标签文字的颜色、文...