在JavaScript中,我可以这样赋值:
Go语言中的
var now = Date.now();
然后将now
用作数字变量进行计算。Go语言中的
time.Time
类型似乎不能满足此需求。那么,Go语言中等价于JavaScript的Date.now()
是什么?var now = Date.now();
然后将now
用作数字变量进行计算。time.Time
类型似乎不能满足此需求。那么,Go语言中等价于JavaScript的Date.now()
是什么?Date.now()
返回自纪元以来的毫秒数(以协调世界时为准)
now() 方法返回从 1970 年 1 月 1 日 00:00:00 UTC 至今经过的毫秒数,作为一个数字。
要在 Go 中获取这个值,可以使用以下代码:
time.Now().UTC().UnixNano() / 1e6
或自Go版本1.17
以来
time.Now().UTC().UnixMilli()
/ 1e6
部分是什么作用? - annaUnixNano()
返回纳秒。要从纳秒转换为毫秒,需要除以1000000。 - sberrypackage main
import (
"fmt"
"time"
)
func main() {
fmt.Println(time.Now())
fmt.Println(time.Now().Date())
}
示例输出:
2009-11-10 23:00:00 +0000 UTC
2009 November 10
以下是来自文档的函数解释:
func Now() Time
func (t Time) Date() (year int, month Month, day int)
Date会返回t发生的年份,月份和日期。
在演示示例中查看。
Date.Now() 返回当前的UTC日期和时间,格式为epoch(unix)。在 Go 语言中,它的等效代码是:
time.Now().Unix()
time.Now()
返回当前的时间。调用Unix()
会将该时间转换为epoch或unix时间,即从1970年1月1日UTC起经过的秒数。
time.Now().Date()
。package main
import (
"fmt"
"time"
)
func main() {
currentTime := time.Now()
fmt.Println(currentTime.Date()) //
fmt.Println("Current Time in String: ", currentTime.String())
fmt.Println("MM-DD-YYYY : ", currentTime.Format("01-02-2006"))
fmt.Println("YYYY-MM-DD : ", currentTime.Format("2006-01-02"))
fmt.Println("YYYY.MM.DD : ", currentTime.Format("2006.01.02 15:04:05"))
fmt.Println("YYYY#MM#DD {Special Character} : ", currentTime.Format("2006#01#02"))
fmt.Println("YYYY-MM-DD hh:mm:ss : ", currentTime.Format("2006-01-02 15:04:05"))
fmt.Println("Time with MicroSeconds: ", currentTime.Format("2006-01-02 15:04:05.000000"))
fmt.Println("Time with NanoSeconds: ", currentTime.Format("2006-01-02 15:04:05.000000000"))
fmt.Println("ShortNum Month : ", currentTime.Format("2006-1-02"))
fmt.Println("LongMonth : ", currentTime.Format("2006-January-02"))
fmt.Println("ShortMonth : ", currentTime.Format("2006-Jan-02"))
fmt.Println("ShortYear : ", currentTime.Format("06-Jan-02"))
fmt.Println("LongWeekDay : ", currentTime.Format("2006-01-02 15:04:05 Monday"))
fmt.Println("ShortWeek Day : ", currentTime.Format("2006-01-02 Mon"))
fmt.Println("ShortDay : ", currentTime.Format("Mon 2006-01-2"))
fmt.Println("Short Hour Minute Second: ", currentTime.Format("2006-01-02 3:4:5"))
fmt.Println("Short Hour Minute Second: ", currentTime.Format("2006-01-02 3:4:5 PM"))
fmt.Println("Short Hour Minute Second: ", currentTime.Format("2006-01-02 3:4:5 pm"))
// 2021 February 10
// Current Time in String: 2021-02-10 11:47:30.5807222 +0530 +0530 m=+0.001994001
// MM-DD-YYYY : 02-10-2021
// YYYY-MM-DD : 2021-02-10
// YYYY.MM.DD : 2021.02.10 11:47:30
// YYYY#MM#DD {Special Character} : 2021#02#10
// YYYY-MM-DD hh:mm:ss : 2021-02-10 11:47:30
// Time with MicroSeconds: 2021-02-10 11:47:30.580722
// Time with NanoSeconds: 2021-02-10 11:47:30.580722200
// ShortNum Month : 2021-2-10
//LongMonth : 2021-February-10
//ShortMonth : 2021-Feb-10
//ShortYear : 21-Feb-10
//LongWeekDay : 2021-02-10 11:47:30 Wednesday
// ShortWeek Day : 2021-02-10 Wed
//ShortDay : Wed 2021-02-10
// Short Hour Minute Second: 2021-02-10 11:47:30
// Short Hour Minute Second: 2021-02-10 11:47:30 AM
// Short Hour Minute Second: 2021-02-10 11:47:30 am
}
Go
time.Now().UTC().UnixMilli()
参考链接:https://pkg.go.dev/time#Time.UnixMilli
注意:我是在使用
go 1.20
时发现这个问题的。
Javascript
Date.now()
1677469641253