go - go time.Parse,格式“02/01/2006”有效,但“02/01/2003”无效
问题描述
为什么第一种格式有效,而第二种无效
package main
import (
"fmt"
"time"
)
func main() {
date := "21/07/1993"
in := "02/01/2006"
out := "02-01-2006"
dt, err := time.Parse(in, date)
if err != nil {
fmt.Println(err)
}
fmt.Println(dt.Format(out))
date = "21/07/1993"
in = "02/01/2003"
out = "02-01-2003"
dt, err = time.Parse(in, date)
if err != nil {
fmt.Println(err)
}
fmt.Println(dt.Format(out))
}
输出
21-07-1993
parsing time "21/07/1993" as "02/01/2003": cannot parse "93" as "0"
01-01-1012
解决方案
这是一个常见的混淆。日期格式不是示例日期。每个日期元素由格式中的特定数字表示。2006 表示年,02 表示日,01 表示月。所以 2003 不是有效格式的一部分。
推荐阅读
- c - Tensorflow:TF_SessionRun 返回 TF_INVALID_ARGUMENT
- ag-grid - 排序前从 rowModelType 更改 ag-grid
- arrays - 计算两个数组中的相同值
- python - Python:将#放在几行的前面
- php - 无法让 XDebug 在 Visual Studio Code 中工作
- python - 如何使用python“格式”通过未知数量的变量创建目录
- android - 如果应用程序已打开,深层链接将不起作用
- javascript - “错误:你已经转发了这条推文。” 如何忽略已在 JavaScript 中转发的推文?
- r - 在管道工 API 中读取本地 csv
- python - 如何将嵌套的 json 转换为以下格式?