第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何獲得一天中的秒數(shù)

如何獲得一天中的秒數(shù)

Go
梵蒂岡之花 2023-06-12 16:32:58
如何在 Go 中獲取一天中的秒數(shù) (1 - 86400)?更新/澄清想要相當(dāng)于 golang 中的 joda/SecondOfDay預(yù)計(jì)在一天結(jié)束時(shí)從 0 和 86400 開(kāi)始在 golang 中重寫一個(gè) java 開(kāi)源函數(shù)時(shí)需要,該函數(shù)又使用 joda/secondOfDay用谷歌搜索“24 小時(shí)到秒”得到 86400在提問(wèn)時(shí)我只能想到 now.Unix()-yesterdayMidnight.Unix() 而我并沒(méi)有想到簡(jiǎn)單接受的答案顯然沒(méi)有考慮夏令時(shí)想看看是否有一些內(nèi)置函數(shù)或流行/標(biāo)準(zhǔn)庫(kù)
查看完整描述

2 回答

?
蝴蝶不菲

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果我們將“一天中的秒數(shù)”定義為“自午夜以來(lái)經(jīng)過(guò)的秒數(shù)”,那么即使在夏令時(shí)發(fā)生的日子里,為了獲得正確的結(jié)果,我們也應(yīng)該從給定時(shí)間中減去代表午夜的時(shí)間。為此,我們可以使用Time.Sub().

func daySeconds(t time.Time) int {

? ? year, month, day := t.Date()

? ? t2 := time.Date(year, month, day, 0, 0, 0, 0, t.Location())

? ? return int(t.Sub(t2).Seconds())

}

測(cè)試它:


for _, t := range []time.Time{

? ? time.Date(2019, 1, 1, 0, 0, 30, 0, time.UTC),

? ? time.Date(2019, 1, 1, 0, 1, 30, 0, time.UTC),

? ? time.Date(2019, 1, 1, 0, 12, 30, 0, time.UTC),

? ? time.Date(2019, 1, 1, 12, 12, 30, 0, time.UTC),

} {

? ? fmt.Println(daySeconds(t))

}

輸出(在Go Playground上嘗試):


30

90

750

43950

讓我們看看這個(gè)函數(shù)如何在夏令時(shí)發(fā)生時(shí)給出正確的結(jié)果。在匈牙利,2018 年 3 月 25 日是時(shí)鐘02:00:00從2 am轉(zhuǎn)到1 小時(shí)的一天3 am。


loc, err := time.LoadLocation("CET")

if err != nil {

? ? fmt.Println(err)

? ? return

}


t := time.Date(2018, 3, 25, 0, 0, 30, 0, loc)

fmt.Println(t)

fmt.Println(daySeconds(t))


t = t.Add(2 * time.Hour)

fmt.Println(t)

fmt.Println(daySeconds(t))

此輸出(在Go Playground上嘗試):


2018-03-25 00:00:30 +0100 CET

30

2018-03-25 03:00:30 +0200 CEST

7230

我們打印daySeconds午夜后 30 秒的時(shí)間,這是30當(dāng)然的。然后我們將時(shí)間加上 2 小時(shí)(2 小時(shí) = 2*3600 秒 = 7200),這個(gè)daySeconds新時(shí)間的時(shí)間將是正確的7200 + 30 = 7230,即使時(shí)間更改為 3 小時(shí)。


查看完整回答
反對(duì) 回復(fù) 2023-06-12
?
神不在的星期二

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊

注意:?此函數(shù)返回 (0 - 86399) 范圍內(nèi)一天中的標(biāo)稱秒數(shù)。如果您正在尋找“自午夜以來(lái)經(jīng)過(guò)的秒數(shù)”,由于夏令時(shí)可能不在 (0 - 86399) 范圍內(nèi),請(qǐng)參閱@icza 的回答。

它似乎對(duì)應(yīng)于名義秒數(shù)實(shí)現(xiàn)(如我在下面的回答中)而不是“數(shù)量自午夜以來(lái)經(jīng)過(guò)的秒數(shù)”(如@icza 的回答)。

package main?


import (

? ? "fmt"

? ? "time"

)


func getSecondOfDay(t time.Time) int {

? ? return 60*60*t.Hour() + 60*t.Minute() + t.Second()

}


func main() {

? ? t := time.Now()

? ? fmt.Println(getSecondOfDay(t))

}


查看完整回答
反對(duì) 回復(fù) 2023-06-12
  • 2 回答
  • 0 關(guān)注
  • 285 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)