MST

星途 面试题库

面试题:Go语言在处理时区相关的复杂日期计算问题

假设你需要处理来自不同时区的时间数据,有一个任务是计算纽约时间2024年10月1日上午10点,对应东京时间是何时,并同时计算这两个时间点之间相差的小时数,用Go语言实现,要求考虑夏令时等复杂情况。
37.9万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
    "time"
)

func main() {
    // 纽约时区
    locNY, err := time.LoadLocation("America/New_York")
    if err != nil {
        fmt.Println("加载纽约时区失败:", err)
        return
    }
    // 东京时区
    locTokyo, err := time.LoadLocation("Asia/Tokyo")
    if err != nil {
        fmt.Println("加载东京时区失败:", err)
        return
    }

    // 纽约时间
    nyTime := time.Date(2024, 10, 1, 10, 0, 0, 0, locNY)

    // 转换为东京时间
    tokyoTime := nyTime.In(locTokyo)

    // 计算时间差
    diff := tokyoTime.Sub(nyTime).Hours()

    fmt.Printf("纽约时间 %v 对应的东京时间是 %v\n", nyTime, tokyoTime)
    fmt.Printf("两个时间点之间相差 %v 小时\n", diff)
}