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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go中如何將毫秒(uint64)轉(zhuǎn)成HH:MM:SS,MMM格式

Go中如何將毫秒(uint64)轉(zhuǎn)成HH:MM:SS,MMM格式

Go
ibeautiful 2022-12-19 21:19:58
在這種情況下,uint64 值不指定具體日期。我正在使用 uint64 以毫秒為單位顯示視頻的特定點(diǎn)。如標(biāo)題所示,我需要轉(zhuǎn)換這個整數(shù)值。我認(rèn)為使用簡單的數(shù)學(xué)來解決這個問題會導(dǎo)致問題(舍入等)。以下是該場景的示例:點(diǎn) 60104:參考第 0 小時、第 1 分鐘、第 0 秒和第 104 毫秒。package mainimport "fmt"// maybe time...func main() {    videoPoint := uint64(65104)    // I want 00:01:05,104    strVideoPoint := ToReadablePoint(videoPoint)    fmt.Println(strVideoPoint)}func ToReadablePoint(point uint64) string {    // algorithm will be written here    return ""}我用的是 Go,但你也可以用 C/C++ 編寫算法。這里的關(guān)鍵是算法。
查看完整描述

1 回答

?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個贊

使用time包

如果持續(xù)時間少于一天,您可以簡單地將其添加到具有零時間部分的參考時間戳,然后使用適當(dāng)?shù)牟季指袷交瘯r間。


參考時間可以是零值time.Time或unix參考時間。


例如:


ms := int64(65104)


var t time.Time // Zero time

t = t.Add(time.Duration(ms) * time.Millisecond)

fmt.Println(t.Format("15:04:05,000"))


t = time.UnixMilli(ms)

fmt.Println(t.Format("15:04:05,000"))

這將輸出(在Go Playground上嘗試):


00:01:05,104

00:01:05,104

如果您想處理超過一天的持續(xù)時間,則此解決方案不適合。一個可能的解決辦法是自己計算小時,其余的(分、秒、毫秒)用上面的方法。


例如:


const msInHour = 60 * 60 * 1000


func format(ms int64) string {

    hours := ms / msInHour

    ms = ms % msInHour

    t := time.UnixMilli(ms)

    return fmt.Sprintf("%02d:%s", hours, t.Format("04:05,000"))

}

測試它:


fmt.Println(format(65104))

fmt.Println(format(27*60*60*1000 + 65104))

這將輸出(在Go Playground上嘗試):


00:01:05,104

27:01:05,104

推出自己的解決方案

如果你不想使用time包,你可以自己做。該算法只是除法和余數(shù)。例如,毫秒部分是除以 1000 后的余數(shù)。此后的秒數(shù)是除以 60 后的余數(shù),依此類推。


例如:


func format(n int64) string {

    ms := n % 1000

    n /= 1000

    sec := n % 60

    n /= 60

    min := n % 60

    n = n / 60

    return fmt.Sprintf("%02d:%02d:%02d,%03d", n, min, sec, ms)

}

這也處理超過一天的持續(xù)時間。測試它:


fmt.Println(format(65104))

fmt.Println(format(27*60*60*1000 + 65104))

這將輸出(在Go Playground上嘗試):


00:01:05,104

27:01:05,104


查看完整回答
反對 回復(fù) 2022-12-19
  • 1 回答
  • 0 關(guān)注
  • 227 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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