代码参考

package snowflake

import (
	"fmt"
	sf "github.com/bwmarrin/snowflake"
	"time"
)

var node *sf.Node

func Init(startTime string, machineID int64) (err error) {
	var st time.Time
	st, err = time.Parse("2006-01-02", startTime)
	if err != nil {
		return
	}
	sf.Epoch = st.UnixNano() / 1000000
	node, err = sf.NewNode(machineID)
	return
}
func GenID() int64 {
	return node.Generate().Int64()

}
func main() {
	if err := Init("2021-10-27", 1); err != nil {
		fmt.Printf("init failed,err :%v\n", err)
	}
	id := GenID()
	fmt.Println(id)

}

直接引入包使用

import (
	"fmt"
	"github.com/luoguoling/pkg/genid"
)
func main() {
	genid.Init("2021-10-28",22)
	fmt.Println(genid.GenID())
}