【Golang】处理时间的坑

冉小妹Ran · · 234 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

需求

  1. 获取当前时间的字符串类型。
  2. 获取到时间之后,按照RFC3339的格式转换成time.Time类型

原版代码

package main

import (
    "fmt"
    "time"
)

func main() {
    timeStr := time.Now().String()
    fmt.Println(timeStr)

    t, err := time.Parse(time.RFC3339, timeStr)
    if err != nil {
        fmt.Printf("err : %v", err)
        return
    }
    fmt.Println(t)
}

原版代码输出结果

2020-03-24 22:44:01.8186776 +0800 CST m=+0.002997901
err : parsing time "2020-03-24 22:44:01.8186776 +0800 CST m=+0.002997901" as "2006-01-02T15:04:05Z07:00": cannot parse " 22:44:01.8186776 +0800 CST m=+0.002997901" as "T"

发现,time.Now().String(),虽然实现了需求的第一点,但是在转换格式的时候报错。

改进代码

package main

import (
    "fmt"
    "time"
)

func main() {
    timeStr := time.Now().Format(time.RFC3339)
    fmt.Println(timeStr)

    t, err := time.Parse(time.RFC3339, timeStr)
    if err != nil {
        fmt.Printf("err : %v", err)
        return
    }
    fmt.Println(t)
}

输出结果

2020-03-24T22:48:00+08:00
2020-03-24 22:48:00 +0800 CST

有疑问加站长微信联系

本文来自:简书

感谢作者:冉小妹Ran

查看原文:【Golang】处理时间的坑

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:812540095

234 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传