以下是使用Go中的time.Duration代码的一些示例:
- 时间间隔转换为字符串
import "time"
func DurationToString(d time.Duration) string {
return d.String()
}
// 示例
d := time.Second * 10
fmt.Println(DurationToString(d)) // Output: 10s
- 字符串转换为时间间隔
import "time"
func StringToDuration(s string) (time.Duration, error) {
return time.ParseDuration(s)
}
// 示例
s := "1h"
d, err := StringToDuration(s)
if err != nil {
// 错误处理
}
fmt.Println(d) // Output: 1h0m0s
- 根据时间间隔获取Unix时间戳
import "time"
func GetUnixTime(d time.Duration) int64 {
return time.Now().UTC().Add(d).Unix()
}
// 示例
d := time.Minute * 5
t := GetUnixTime(d)
fmt.Println(t) // Output: Unix timestamp after 5 minutes from now
- 获取距离现在的时间间隔
import "time"
func TimeUntil(t time.Time) time.Duration {
return time.Until(t)
}
// 示例
t := time.Now().Add(time.Hour)
d := TimeUntil(t)
fmt.Println(d) // Output: Duration until 1 hour from now
- 获取两个时间之间的时间间隔
import "time"
func TimeDiff(t1, t2 time.Time) time.Duration {
return t1.Sub(t2)
}
// 示例
t1 := time.Now()
t2 := time.Now().Add(-time.Minute * 10)
d := TimeDiff(t1, t2)
fmt.Println(d) // Output: Difference between t1 and t2