【问题标题】:error with kubectl --since-time flag not recognizing datetime formatkubectl 错误 --since-time 标志无法识别日期时间格式
【发布时间】:2023-02-09 21:27:19
【问题描述】:

我正在接受用户输入“2023-09-02”(YYYY-DD-MM)并将其转换为官方docs 中指定的指定日期时间格式(RFC3339):

--since-time="": 仅在特定日期后返回日志 (RFC3339)

这是负责转换的部分:

date, err := time.Parse(time.RFC3339, "2023-09-02")
if err != nil {
    log.Fatal(err)
}
since = date.String()

我得到的错误是:

将时间“2023-09-02”解析为“2006-01-02T15:04:05Z07:00”:无法将“”解析为“T”

我根据this文章修改了格式并将代码修改为:

date, err := time.Parse("2006-01-02 15:04:05 -0700 MST", "2023-09-02")

我现在得到的错误是:

将时间“2023-09-02”解析为“2006-01-02 15:04:05 -0700 MST”:无法将“”解析为“15”

我知道它正在尝试解析小时的“15”,但没有提供一个小时。有没有办法将它默认为当天午夜?

【问题讨论】:

    标签: go kubectl


    【解决方案1】:

    问题在于您的布局字符串与您的输入不匹配。

    如果您将自定义格式字符串指定为 "2006-01-02 15:04:05 -0700 MST",您的输入必须与其完全匹配,您不能只省略时间戳的时间部分。

    请注意,错误消息是说它正在寻找布局中的 "15" 部分,但找不到它 (cannot parse ""),因为那里什么也没有。

    如果您只想解析日期,您可以尝试:

    t, err := time.Parse("2006-01-02", "2023-09-02")
    

    这将返回以下时间戳

    2023-09-02 00:00:00 +0000 UTC

    如果没有任何明确规定的时区,它将始终默认为 UTC。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-20
      • 2018-06-11
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      相关资源
      最近更新 更多