有个日期有点特殊

78 阅读1分钟
package main

import (
	"flag"
	"time"

	"fmt"
)

var (
	// timeStr = flag.String("t", "06/2022", "")
	timeStr   = flag.String("t", "06/2010", "")
	isBeijing = flag.Bool("isBeijing", false, "")
)

func main() {
	flag.Parse()

	t := GetTimestampFormatString(*timeStr, "01/2006")
	fmt.Printf("isBeijing:%v,t:%v, beijing:%v, Mexico:%v\n", *isBeijing, t, MDateMHS(t, "Asia/Shanghai"), MDateMHS(t, "America/Mexico_City"))
}

func GetTimestampFormatString(times, format string) int64 {
	timezone := GetServiceTimezone()
	local, _ := time.LoadLocation(timezone)
	parse, _ := time.ParseInLocation(format, times, local)
	return parse.UnixNano() / 1000000
}

// 服务区域的时区
func GetServiceTimezone() (timezone string) {
	timezone = "America/Mexico_City"
	if *isBeijing {
		timezone = "Asia/Shanghai"
	}

	return
}

// 毫秒,输出时间
func MDateMHS(timestamp int64, timeZone string) string {
	tmp := timestamp / 1000

	if tmp <= 0 {
		return "-"
	}

	tm := time.Unix(tmp, 0)
	// timezone := GetServiceTimezone()
	local, _ := time.LoadLocation(timeZone)

	return tm.In(local).Format("2006-01-02 15:04:05")
}

21号,有点特殊

dev@dev-VirtualBox ) $ go run debug/main.go -isBeijing=true -t=02/2010
isBeijing:true,t:1264953600000, beijing:2010-02-01 00:00:00, Mexico:2010-01-31 10:00:00
dev@dev-VirtualBox ) $ go run debug/main.go -isBeijing=false -t=02/2010
isBeijing:false,t:1265004000000, beijing:2010-02-01 14:00:00, Mexico:2010-02-01 00:00:00
dev@dev-VirtualBox ) $ go run debug/main.go -isBeijing=false -t=02/2012
isBeijing:false,t:1328076000000, beijing:2012-02-01 14:00:00, Mexico:2012-02-01 00:00:00
dev@dev-VirtualBox ) $ go run debug/main.go -isBeijing=true -t=02/2012
isBeijing:true,t:1328025600000, beijing:2012-02-01 00:00:00, Mexico:2012-01-31 10:00:00
dev@dev-VirtualBox ) $ go run debug/main.go -isBeijing=true -t=05/2012
isBeijing:true,t:1335801600000, beijing:2012-05-01 00:00:00, Mexico:2012-04-30 11:00:00
dev@dev-VirtualBox ) $ 
dev@dev-VirtualBox ) $ 
dev@dev-VirtualBox ) $ go run debug/main.go -isBeijing=false -t=05/2012
isBeijing:false,t:1335848400000, beijing:2012-05-01 13:00:00, Mexico:2012-05-01 00:00:00