ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[info] time ~~~ package main import ( "fmt" "time" ) var ( chinaStandardTime = "CST" timezoneOffset = 8 * 60 * 60 // 8小时 CSTZone = time.FixedZone(chinaStandardTime, timezoneOffset) // 东八区 ) func main() { // 获取当前时间 now := time.Now() // 获取当前时间戳 timestamp := now.Unix() fmt.Println(timestamp) // 1724405308 // 将时间戳转为时间格式 dateTime := TimeParseTimeStamp(timestamp) fmt.Println(dateTime) // 2024-08-23 17:28:28 date := TimeParseShortDay(timestamp) fmt.Println(date) // 2024-08-23 // 将时间格式转为时间戳 timestamp1 := TimeParseTime(dateTime) fmt.Println(timestamp1) // 1724405308 timestamp2 := StrToTime(date) fmt.Println(timestamp2) // 1724342400 // 通过时间戳获取时间差-精确到小时 getDaysHours := GetDaysHours(timestamp - 86400) fmt.Println(getDaysHours) // 1天 } // TimeParseTimeStamp 将时间戳转换为"2006-01-02 15:04:05"格式 func TimeParseTimeStamp(timestamp int64) string { if timestamp == 0 { return "" } return time.Unix(timestamp, 0).In(CSTZone).Format(time.DateTime) } // TimeParseShortDay 将时间戳转换为"2006-01-02"格式 func TimeParseShortDay(timestamp int64) string { if timestamp == 0 { return "" } return time.Unix(timestamp, 0).In(CSTZone).Format(time.DateOnly) } // TimeParseTime 将"2006-01-02 15:04:05"格式转为时间戳 func TimeParseTime(timeStr string) int64 { if timeStr == "" { return 0 } timestamp, _ := time.ParseInLocation("2006-01-02 15:04:05", timeStr, CSTZone) return timestamp.Unix() } // StrToTime 将"2006-01-02"格式转为时间戳 func StrToTime(timeStr string) int64 { theTime, _ := time.ParseInLocation(time.DateOnly, timeStr, CSTZone) sr := theTime.Unix() return sr } // GetDaysHours 通过时间戳获取时间差-精确到小时 func GetDaysHours(start int64) string { var ( sub int64 days int64 hours int64 timeStr string startTime time.Time endTime time.Time ) startTime = time.Unix(start, 0) endTime = time.Unix(time.Now().Unix(), 0) sub = int64(endTime.Sub(startTime).Hours()) days = sub / 24 hours = sub % 24 if hours > 0 { timeStr = fmt.Sprintf("%d天%dh", days, hours) } else { timeStr = fmt.Sprintf("%d天", days) } return timeStr } ~~~