当前位置: 首页 > 面试题库 >

如何正确解析时区代码

慕容康安
2023-03-14
问题内容

在下面的示例中,无论您为parseAndPrint函数选择的时区如何,结果始终为“ [日期] 05:00:00 +0000
UTC”。此代码有什么问题?时间应根据您选择的时区而变化。(Go Playground服务器显然是在UTC时区中配置的)。

http://play.golang.org/p/wP207BWYEd

package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now()
    parseAndPrint(now, "BRT")
    parseAndPrint(now, "EDT")
    parseAndPrint(now, "UTC")
}

func parseAndPrint(now time.Time, timezone string) {
    test, err := time.Parse("15:04:05 MST", fmt.Sprintf("05:00:00 %s", timezone))
    if err != nil {
        fmt.Println(err)
        return
    }

    test = time.Date(
        now.Year(),
        now.Month(),
        now.Day(),
        test.Hour(),
        test.Minute(),
        test.Second(),
        test.Nanosecond(),
        test.Location(),
    )

    fmt.Println(test.UTC())
}

问题答案:

解析时间时,就是在您当前的位置进行解析,只要您期望的那样就可以,而且可以从您所在的位置知道时区缩写。

如果您可以放弃时区,那么将您处理UTC的所有时间标准化就容易得多。

下一个最简单的html" target="_blank">方法是处理带有显式偏移量的所有内容,例如-05:00

如果要处理源自其他时区的时间,则需要使用time.Location。您可以使用来从本地时区db加载Locations
time.LoadLocation,并使用来解析时间time.ParseInLocation



 类似资料:
  • 我有一个简单的rest服务来存储时间范围,然而,Spring不能正确解析带有时区的datetime格式。 该实体是

  • 为什么我们的域名不能被解析 最近经常有朋友在使用一个域名地址时发现无法被正确解析,比如在使用 Mysql 实例时某些云会给一个私有的域名搭配自有的 nameserver 使用 local client = mysql:new() client:connect({ host = "rdsmxxxxxx.mysql.rds.xxxx.com", port = 3306, dat

  • 问题内容: 我有一个关于mysql时区的怪异问题。 在我的网站配置文件中,我这一行设置了时区: 有趣的是,如果我在此之后添加另一行,例如: 执行该代码后,时间将正确显示。 但是,在其他一些查询中,我在表中插入行,这些表的列名为date,默认为CURRENT_TIMESTAMP。 这样插入行: (“会话”表的列默认为CURRENT_TIMESTAMP) 但是插入到数据库中的值仍指向服务器的时区:((

  • 问题内容: 我正在从REST服务接收XML文档,该文档将使用SAX进行解析。请参见以下示例,它是从XSD生成的。 设置解析器不是问题。我的主要问题是在实际的处理,方法等,我不知道如何提取我需要的项目,并将其作为他们有些“嵌套”。 例 所述可发生一次或两次,并且可以包含任意数量的其-in了转向有关于一个连接的信息的元素。基本上,我需要与他们的所有连接的列表,和。我必须为每个元素创建一个类吗? 就我所

  • 问题内容: 我一直在这里和总体上搜索所有子解析器示例的分配,但似乎无法弄清楚这看似简单的事情。 我有两种var类型,其中一种具有约束,所以认为使用subparser是必经之路。例如-t允许“ A”或“ B”。如果用户通过“ A”,则进一步要求他们还指定它是“ a1”还是“ a2”。如果他们只是通过“ B”,那么什么也没有。 我可以这样做,让argparse返回给我什么类型的“ A”,或者只是“ B

  • 问题内容: 我是Python的新手。我想解析一个csv文件,以便它可以识别带引号的值-例如 1997年,福特E350,“超级豪华卡车” 应该拆分为 (“ 1997”,“福特”,“ E350”,“超级豪华卡车”) 并不是 (“ 1997”,“福特”,“ E350”,“超级”,“豪华卡车””) 以上就是我使用类似的东西所得到的。 我该怎么做呢?同样最好将这些值存储在数组或其他数据结构中吗?因为在我从c