【问题标题】:Server Hour considering another TZ as reference考虑另一个 TZ 作为参考的服务器时间
【发布时间】:2019-12-03 17:18:59
【问题描述】:

我试图在特定时间触发工作人员。问题是我需要知道那个小时服务器的相对时间是多少。客户希望在洛杉矶时间每天晚上 8 点触发工作人员,因此我必须使其具有足够的动态性,以使其花费服务器一小时,计算洛杉矶该小时的等效时间。我也在使用碳,但是有没有内置的功能呢?或者有什么已知的程序来处理它?

【问题讨论】:

  • 你试过什么?包括您的代码。你真的有问题吗?如果您在计划中指定时区,这应该是默认行为。您面临什么实际问题?
  • 我一直在寻找一个内置函数来进行时间转换,而无需手动进行,因为这似乎是许多项目中的常见问题
  • 我不知道你到底想要一个内置函数做什么。我认为你根本不需要函数。您只需要在正确的时区解析时间。
  • @Flimzybecause 更容易,而且总是一样的,就像:嘿,在洛杉矶的当地时间是晚上 8 点
  • 因为什么更容易?

标签: date go timezone php-carbon


【解决方案1】:

time.LoadLocationtime.In 是您需要的两个函数。下面的代码是从time.LoadLocation例子中复制修改的:

func main() {
    location, err := time.LoadLocation("America/Los_Angeles")
    if err != nil {
        panic(err)
    }

    timeInUTC := time.Date(2018, 8, 30, 12, 0, 0, 0, time.UTC)
    fmt.Println(timeInUTC.In(location))

    now := time.Now()
    timeThere := time.Date(now.Year(), now.Month(), now.Day(), 8, 0, 0, 0, location)
    timeHere := timeThere.In(time.Now().Location())
    fmt.Println(timeHere)
}

【讨论】:

  • 这在洛杉矶显示timeInUTC。但 OP 本质上需要相反:以 LA 时间指定的时间需要以 UTC(或服务器时间)触发事件。
  • 编辑了答案以包含两者。
猜你喜欢
  • 2014-04-27
  • 2011-10-18
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 2021-03-15
  • 2010-09-23
相关资源
最近更新 更多