This commit is contained in:
XuanLee-HEALER
2025-11-10 15:30:21 +08:00
parent 4716b82f29
commit df39693dff
43 changed files with 6864 additions and 5 deletions

49
cmd/xb/main.go Normal file
View File

@@ -0,0 +1,49 @@
package main
import (
"fmt"
"log"
"time"
)
func TzStrToOffset(ianaZone string) (string, error) {
loc, err := time.LoadLocation(ianaZone)
if err != nil {
return "", fmt.Errorf("无法加载时区 %s: %v", ianaZone, err)
}
t := time.Date(2025, time.October, 28, 0, 0, 0, 0, loc)
_, offsetSeconds := t.Zone()
offset := time.Duration(offsetSeconds) * time.Second
// 格式化偏移量。time.Time.Format() 无法直接将 Location 格式化成 UTC+HH:MM
// 因此我们需要手动计算并格式化。
sign := "+"
if offsetSeconds < 0 {
sign = "-"
offset = -offset // 确保偏移量为正值进行计算
}
hours := int(offset.Hours())
minutes := int(offset.Minutes()) % 60
// 最终的格式化字符串
utcOffsetString := fmt.Sprintf("%s%02d%02d", sign, hours, minutes)
return utcOffsetString, nil
}
func main() {
ianaZone := "Asia/Shanghai"
ianaZone = "UTC"
utcOffsetString, err := TzStrToOffset(ianaZone)
if err != nil {
log.Fatalf("错误: %v", err)
}
fmt.Printf("IANA 时区: %s\n", ianaZone)
fmt.Printf("UTC 偏移量: %s\n", utcOffsetString)
}