首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将YYYYMMDD字符串转换为Go中的有效日期

将YYYYMMDD字符串转换为Go中的有效日期
EN

Stack Overflow用户
提问于 2015-11-19 07:30:54
回答 2查看 10.7K关注 0票数 2

我想把一个字符串"20101011"转换成一个有效的日期(2010-10-11),但是不知道该怎么做。

我试过了:

代码语言:javascript
复制
now := time.Now()
date := now.Format("20101011")

代码语言:javascript
复制
date, _ := time.Parse("20101011", "20101011")

两种方法都不起作用。

EN

回答 2

Stack Overflow用户

发布于 2015-11-19 08:08:14

Package time

导入“时间”

Constants

const ( ANSIC = "Mon Jan _2 15:04:05 2006“UnixDate = "Mon Jan _2 15:04:05 MST 2006”RubyDate = "Mon Jan 02 15:04:05 -0700 2006“RFC822 = "02 Jan 06 15:04 MST”RFC822Z = "02 Jan 06 15:04 -0700“// RFC822数字区域RFC850 =”星期一,02- Jan -06 15:04:05 MST“RFC1123 = "Mon,02 Jan 2006 15:04:05 MST”RFC1123Z = "Mon,02 Jan 2006 15:04:05 -0700“// RFC1123,数字区域RFC3339 = "2006-01-02T15:04:05Z07:00”RFC3339Nano =“2006-01-02T15:04:05.9999999Z07:00”厨房=“3:04 05”//方便的时间戳。Stamp = "Jan _2 15:04:05“StampMilli = "Jan _2 15:04:05.000”StampMicro = "Jan _2 15:04:05.000000“StampNano = "Jan _2 15:04:05.000000000”)

这些是在Time.Format和Time.Parse中使用的预定义布局。布局中使用的参考时间是特定时间:

Mon Jan 2 15:04:05 MST 2006

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

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

要定义自己的格式,请写下参考时间按您的方式格式化后的样子;有关示例,请参阅ANSIC、StampMicro或厨房等常量的值。该模型用于演示参考时间的外观,以便Format和Parse方法可以将相同的转换应用于一般时间值。

YYYYMMDD使用time格式字符串"20060102"。对YYYY-MM-DD使用time格式字符串"2006-01-02"

例如,

代码语言:javascript
复制
package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now()
    fmt.Println(now)
    date := now.Format("20060102")
    fmt.Println(date)
    date = now.Format("2006-01-02")
    fmt.Println(date)
    date2, err := time.Parse("20060102", "20101011")
    if err == nil {
        fmt.Println(date2)
    }
}

输出:

代码语言:javascript
复制
2009-11-10 23:00:00 +0000 UTC
20091110
2009-11-10
2010-10-11 00:00:00 +0000 UTC
票数 10
EN

Stack Overflow用户

发布于 2021-03-29 21:05:33

您可以执行以下操作:

代码语言:javascript
复制
dateStr := "20210131"                           // date in 'String' data type
dateValue, _ := time.Parse("20060102", dateStr) // convert 'String' to 'Time' data type
fmt.Println(dateValue)                          // output: 2021-01-31 00:00:00 +0000 UTC
dateStr = dateValue.Format("2006-01-02")       // Format return a 'string' in your specified layout (YYYY-MM-DD)
fmt.Println(dateStr)                           // Output: 2021-01-31
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33792545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档