網(wǎng)站首頁 編程語言 正文
1.獲取當(dāng)前時(shí)間的第二天零點(diǎn)時(shí)間,以及獲取當(dāng)前的23:59:59 的時(shí)間戳和date類型:
package main
import (
"fmt"
"time"
)
func main(){
timeStr := time.Now().Format("2006-01-02")
fmt.Println(timeStr)
//使用Parse 默認(rèn)獲取為UTC時(shí)區(qū) 需要獲取本地時(shí)區(qū) 所以使用ParseInLocation
t2, _ := time.ParseInLocation("2006-01-02", timeStr, time.Local)
//獲取當(dāng)前時(shí)間的第二天零點(diǎn)時(shí)間
tomorrowFirstMoment2 := t2.AddDate(0, 0, 1)
fmt.Println(tomorrowFirstMoment2)
//獲取時(shí)間戳
sjc := tomorrowFirstMoment2.Unix()
//必須先將時(shí)間戳轉(zhuǎn)為time.Duration才能與time.Second相乘
d := time.Duration(sjc)*time.Second
now := time.Now().Unix()
//計(jì)算距離當(dāng)前時(shí)間還有多少納秒
fmt.Println(int64(d-time.Duration(now*1000000000)))
var nowTime = time.Now()
//獲取當(dāng)前時(shí)間的第二天零點(diǎn)時(shí)間
var tomorrowFirstMoment = time.Date(nowTime.Year(), nowTime.Month(), nowTime.Day()+1, 0, 0, 0, 0, nowTime.Location())
fmt.Println(tomorrowFirstMoment)
//計(jì)算距離當(dāng)前時(shí)間還有多少納秒
var d2 = tomorrowFirstMoment.Sub(nowTime)
fmt.Println(int64(d2))
//獲取當(dāng)天的23:59:59
todayyLastMoment, _ := time.ParseInLocation("2006-01-02 15:04:05", timeStr+" 23:59:59", time.Local)
fmt.Println(todayyLastMoment)
//計(jì)算距離當(dāng)前時(shí)間還有多少納秒
var d3 = todayyLastMoment.Sub(nowTime)
//直接用print的話就不用強(qiáng)轉(zhuǎn)為int64
print(d3)
}
結(jié)果:
2022-04-19
2022-04-20 00:00:00 +0800 CST
49780000000000
2022-04-20 00:00:00 +0800 CST
49779126196000
2022-04-19 23:59:59 +0800 CST
49778126196000
Process finished with exit code 0
從結(jié)果可以看出第二天零點(diǎn)和今晚的23:59:59與當(dāng)前時(shí)間相減結(jié)果是一樣的,不應(yīng)該有1秒之差嗎?
常見時(shí)間格式轉(zhuǎn)化:
package main
import (
"fmt"
"time"
)
func main(){
t := int64(1650344950) //外部傳入的時(shí)間戳(秒為單位),必須為int64類型
t1 := "2022-04-19 10:22:30" //外部傳入的時(shí)間字符串
timeNow := time.Now()
//時(shí)間轉(zhuǎn)換的模板,golang里面只能是 "2006-01-02 15:04:05" (go的誕生時(shí)間)
timeTemplate1 := "2006-01-02 15:04:05" //常規(guī)類型
timeTemplate2 := "2006/01/02 15:04:05" //其他類型
timeTemplate3 := "2006-01-02" //其他類型
timeTemplate4 := "15:04:05" //其他類型
timeTemplate5 := "15" //獲取 當(dāng)前時(shí)間的 時(shí)
timeTemplate6 := "04" //獲取 當(dāng)前時(shí)間的 分
timeTemplate7 := "05" //獲取 當(dāng)前時(shí)間的 秒
// ======= 將時(shí)間戳格式化為日期字符串 =======
fmt.Println(time.Unix(t, 0).Format(timeTemplate1)) //輸出:2022-04-19 13:09:10
fmt.Println(time.Unix(t, 0).Format(timeTemplate2)) //輸出:2022/04/19 13:09:10
fmt.Println(time.Unix(t, 0).Format(timeTemplate3)) //輸出:2022-04-19
fmt.Println(time.Unix(t, 0).Format(timeTemplate4)) //輸出:13:09:10
fmt.Println(time.Unix(t, 0).Format(timeTemplate5)) //輸出:13
fmt.Println(time.Unix(t, 0).Format(timeTemplate6)) //輸出:09
fmt.Println(time.Unix(t, 0).Format(timeTemplate7)) //輸出:10
// ======= 將時(shí)間字符串轉(zhuǎn)換為時(shí)間戳 =======
stamp, _ := time.ParseInLocation(timeTemplate1, t1, time.Local) //使用parseInLocation將字符串格式化返回本地時(shí)區(qū)時(shí)間
fmt.Println(stamp) //2019-01-08 13:50:30 +0800 CST
fmt.Println(stamp.Format(timeTemplate1)) //輸出:2022-04-19 10:22:30
fmt.Println(stamp.Format(timeTemplate2)) //輸出:2022/04/19 10:22:30
fmt.Println(stamp.Format(timeTemplate3)) //輸出:2022-04-19
fmt.Println(stamp.Format(timeTemplate4)) //輸出:10:22:30
fmt.Println(stamp.Format(timeTemplate5)) //輸出:10
fmt.Println(stamp.Format(timeTemplate6)) //輸出:22
fmt.Println(stamp.Format(timeTemplate7)) //輸出:30
fmt.Println(stamp.Unix()) //輸出:1546926630
fmt.Println(timeNow) //2022-04-19 10:25:33.674693 +0800 CST m=+0.000083549
fmt.Println(timeNow.Format(timeTemplate1)) //輸出:2022-04-19 10:25:33
fmt.Println(timeNow.Format(timeTemplate2)) //輸出:2022/04/19 10:25:33
fmt.Println(timeNow.Format(timeTemplate3)) //輸出:2022-04-19
fmt.Println(timeNow.Format(timeTemplate4)) //輸出:10:25:33
fmt.Println(timeNow.Format(timeTemplate5)) //輸出:10
fmt.Println(timeNow.Format(timeTemplate6)) //輸出:25
fmt.Println(timeNow.Format(timeTemplate7)) //輸出:33
}
結(jié)果:
2022-04-19 13:09:10
2022/04/19 13:09:10
2022-04-19
13:09:10
13
09
10
2022-04-19 10:22:30 +0800 CST
2022-04-19 10:22:30
2022/04/19 10:22:30
2022-04-19
10:22:30
10
22
30
1650334950
2022-04-19 10:31:13.363526 +0800 CST m=+0.000091492
2022-04-19 10:31:13
2022/04/19 10:31:13
2022-04-19
10:31:13
10
31
13
原文鏈接:https://blog.csdn.net/u014082714/article/details/124266884
相關(guān)推薦
- 2022-02-17 Chrome瀏覽器/Jupyter lab下載文件提示已經(jīng)被禁止
- 2022-05-04 ?Python?中?logging?模塊使用詳情_python
- 2023-07-02 一文詳解Python中l(wèi)ogging模塊的用法_python
- 2023-03-21 redis哨兵模式說明與搭建詳解_Redis
- 2022-10-07 android?studio廣播機(jī)制使用詳解_Android
- 2022-06-14 C#實(shí)現(xiàn)密碼驗(yàn)證與輸錯(cuò)密碼賬戶鎖定_C#教程
- 2022-02-21 C#多線程學(xué)習(xí)之Thread、ThreadPool、Task、Parallel四者區(qū)別_C#教程
- 2022-09-25 edge或谷歌瀏覽器打開默認(rèn)是百度或其他,怎么修改成自己想要的頁面
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支