package time
import (
"fmt"
"testing"
"time"
)
func TestTmp1(t *testing.T) {
now := time.Now()
fmt.Println(now)
fmt.Println(now.Unix())
location, err := time.LoadLocation("America/New_York")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(now.In(location))
nowUTC := now.UTC()
fmt.Println(nowUTC)
fmt.Println(now.Format("2006-01-02T15:04:05Z07:00"))
}
1. 时间戳
- 它是自1970年1月1日(00:00:00 UTC)以来的秒数
- 同一时刻,在不同时区的时间戳是一样的。
- 时间戳全球统一
2. 本地时间
- 同一时刻,不同时区的本地时间是不一样的。比如某一时刻中国的本地时间是8点,美国的本地时间是0点
- 本地时间是UTC时间的在时区偏移后的结果。
- 所以一个时间戳,在不同时区存为当地的本地时间,时间是不一样的
3. UTC时间
- UTC:协调世界时,是全球时间标准,所有的时间区域都是相对于UTC来定义的。
- 例如东八区(China Standard Time),也就是北京时间,就是 UTC+8 小时。当协调世界时为12:00时,北京时间为20:00。
4. ISO 8601 日期和时间表示方式
YYYY-MM-DDTHH:MM:SS±hh:mm
YYYY
: 年份MM
:月份DD
:天数T
:时间和日期的分隔符HH
:小时MM
:分钟SS
:秒±
:分割符,时区偏移的正负hh
:偏移的小时mm
:偏移的分钟
2023-07-28T00:42:00+08:00
- 它同时提供了日期时间和时区信息
- 它的格式是固定且严格的,非常适合在计算机系统中使用