草庐IT

payment_time

全部标签

戈朗 : Wait x amount of time before looping again without starting new goroutine

我有一个循环,需要等待一段随机时间才能再次循环。我有什么:for{rand.Seed(time.Now().UnixNano())r:=rand.Int()//Dostufft,_:=time.ParseDuration(string(r)+"ms")time.Sleep(t)}不幸的是,循环会运行多次,就像time.Sleep不工作一样。 最佳答案 您应该检查当前从t,_:=time.ParseDuration中丢弃的错误:您传递给Sleep的time.Duration处于零值,这会导致函数休眠0纳秒。更改#1:处理错误t,err

time - 如何仅使用 time.After 编写我自己的 Sleep 函数?

我正在尝试使用Go中的time.After编写自己的sleep函数,等同于time.Sleep。这是代码。第一次尝试:funcSleep(xint){msg:=make(chanint)msg:=第二次尝试:funcSleep(xint){time.After(time.Second*x)}两者都返回错误,有人可以向我解释如何使用time.After编写等同于time.Sleep的sleep函数吗?如果可能的话,我什么时候使用channel? 最佳答案 time.After()返回给你一个channel。在指定的持续时间后,将在ch

Go time.Tick 与 time.NewTicker

我是Go的新手,最近才开始学习。我遇到过自动收报机和计时器。在代码中,我们可以通过两种方式创建代码throttler:=time.Tick(time.Millisecond*50)除了语法之外,它们之间还有什么区别? 最佳答案 来自time.Tickdocumentation:TickisaconveniencewrapperforNewTickerprovidingaccesstothetickingchannelonly.WhileTickisusefulforclientsthathavenoneedtoshutdownthe

parsing - 将字符串解析为 time.Time 值

这个问题在这里已经有了答案:ParsingRFC-3339/ISO-8601date-timestringinGo(8个答案)关闭5年前。我有一个格式为20171023T183552的字符串时间。我没有找到任何格式来解析这个字符串值。有什么方法可以将此字符串值转换为Gotime.Time吗?编辑-这不是重复的问题。我知道如何解析,但我不知道我们可以使用时间格式包中列出的布局以外的任何布局。这个答案消除了我的疑问。

go - 将整个函数放在一个带有 time.Sleep 的无限循环中还是循环一个 go routine 效率更高?

我有一个函数,我想每20秒左右轮询一次,现在它在go例程中被调用,如下所示:转到StartTradeBot()然后在函数体中:funcStartTradeBot(){for{//Allthestufftodotime.Sleep(20*time.Second)}}这样效率更高吗?或者我应该像这样包装我的goroutinefor{goStartTradeBot()time.Sleep(20*time.Second)} 最佳答案 关于如何做到这一点,至少有三种变体,每种都有不同的功能。因为间隔是20秒,所以性能上的差异可以忽略不计。选择

parsing - 更改 time.Time 时区而不重新解析

我正在处理使用错误时区解析的time.Time对象。它们内部有一个UTCtz,但原始数据来自旧版MySQL数据库,该数据库在内部存储带有欧洲/巴黎时区的日期时间。我想在不重新解析的情况下更改时间的内部时区。我尝试了time.In()函数,但它没有解决我的用例,因为它返回另一个时区的同一时间。我的最终解决方案是使用https://golang.org/pkg/time/#ParseInLocation使用正确的位置从原始值重新创建日期。但是,如果可以避免这种情况,那就更好了。有什么想法吗?谢谢。 最佳答案 你能为他们添加固定offes

go - 为什么这两个 time.Time 实例对于 UTC 是相同的而对于另一个位置是不同的?

我希望这两个time.Time实例是相同的。但是,我不确定为什么我得到的比较结果是错误的。packagemainimport("fmt""time")funcmain(){t:=int64(1497029400000)locYangon,_:=time.LoadLocation("Asia/Yangon")dt:=fromEpoch(t).In(locYangon)locYangon2,_:=time.LoadLocation("Asia/Yangon")dt2:=fromEpoch(t).In(locYangon2)fmt.Println(dt2==dt)}funcfromEpoch

date - time.AddDate() 不适用于仅解析时间,并将日期设置为今天?

https://play.golang.org/p/O1FWb9O97ldfuncmain(){//constlongForm="Jan2,2006at3:04pm(MST)"t1,_:=time.Parse("03:04:05","12:03:30")fmt.Printf("currentdatetime%v\n",t1)now:=time.Now().UTC()t1.AddDate(now.Year(),int(now.Month()),now.Day())fmt.Printf("currentdatetime%v",t1)}输出当前日期时间0000-01-0112:03:30+0

戈朗 : why does the word "hello" loop 5 times while the word "world" loops only 4?

这个问题在这里已经有了答案:Nooutputfromgoroutine(3个答案)关闭7年前。packagemainimport("fmt""time")funcsay(sstring){fori:=0;i运行代码,输出为:helloworldhelloworldhelloworldhelloworldhello在前4个循环中,每100毫秒,将打印一个“hello”,然后打印一个“world”。并且在最后一个循环中只会打印一个“hello”。有没有人可以解释一下代码的执行顺序是什么?

json - 将纪元时间戳解码为 time.Time

使用此结构运行Decode()会产生“时间戳”列错误:typeMetricsstruct{Idint`orm:"column(id);auto"`Namestring`orm:"column(name);size(255);null"json:"metric_name"`json:"lon"`Timestamptime.Time`orm:"column(timestamp);type(datetime)"json:"timestamp;omitempty"`}错误:parsingtime"1352289160"as""2006-01-02T15:04:05Z07:00"":cannot