为了账号安全,请及时绑定邮箱和手机立即绑定

将字符串解析为时间戳会切断字符串的年份部分

将字符串解析为时间戳会切断字符串的年份部分

Go
慕的地6264312 2022-08-09 20:31:44
我有一个字符串,其格式为时间戳“2021-02-04 23:45:00”但是当我尝试用time.parse解析它时,它似乎切断了年份部分。代码是case "period_end":                fmt.Println(record[i])                ts, err := time.Parse("2021-02-04 23:45:00", record[i])                if err != nil {                    log.Printf("Time conversion failed: %v", err)                    return                }reading.Interval = t其中,此时的记录 [i] 是一个字符串,其中2021-02-04 00:15:00和阅读。间隔就是时间。时间Printf 中返回的错误是Time conversion failed: parsing time "2021-02-04 00:15:00" as "2021-02-04 23:45:00": cannot parse "-02-04 00:15:00" as "1"我在我做过的任何搜索中都找不到。我在这里错过了什么?
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

及时替换第一个参数。解析:

"2021-02-04 23:45:00"

"2006-01-02 15:04:00"

Golang使用特定的日期进行格式化,不知道为什么 https://golang.org/src/time/format.go


查看完整回答
反对 回复 2022-08-09
?
偶然的你

TA贡献1841条经验 获得超3个赞

Go 使用此默认时间来设置布局:

"2006-01-02T15:04:05.000Z"

此布局的详细信息:

布局中使用的参考时间是特定时间:

星期一 一 月 2 15:04:05 MST 2006

这是Unix时间1136239445。由于 MST 是 GMT-0700,因此可以将参考时间视为

01/02 03:04:05PM '06 -0700

因此,要解决您的问题:

package main


import (

    "fmt"

    "time"

)


func main() {

    recordTime := "2021-02-04 23:45:00"

    ts, err := time.Parse("2006-01-02 15:04:05", recordTime)

        if err != nil {

            fmt.Println("error: ", err)

        return

    }

    fmt.Println(ts)

}


此代码可在此处找到。


查看完整回答
反对 回复 2022-08-09
  • 2 回答
  • 0 关注
  • 229 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号