go - 为什么golang时间功能在某些日期会失败
问题描述
我已经检查了解决此问题的其他建议,但它们不起作用。
当前代码似乎可以工作,直到您输入不同的日期,然后我得到如下所示的随机失败。
代码如下:
yy, mm, dd = 11, 27, 2019
s_yy, s_mm, s_dd = 11, 1, 2019
e_yy, e_mm, e_dd = 1, 1, 2020
input := fmt.Sprintf("%d-%d-%d", yy, mm, dd)
input += "T15:04:05.000-07:00"
t, _ := time.Parse("2006-01-02T15:04:05.000-07:00", input)
input_s := fmt.Sprintf("%d-%d-%d", s_yy, s_mm, s_dd)
input_s += "T15:04:05.000-07:00"
t_s, _ := time.Parse("2006-01-02T15:04:05.000-07:00", input_s)
input_e := fmt.Sprintf("%d-%d-%d", e_yy, e_mm, e_dd)
input_e += "T15:04:05.000-07:00"
t_e, _ := time.Parse("2006-01-02T15:04:05.000-07:00", input_e)
fmt.Println("t = ", t, " t_s = ", t_s, " t_e", t_e)
结果如下:
t = 2019-12-27 15:04:05 -0700 -0700 t_s = 0001-01-01 00:00:00 +0000 UTC t_e 0001-01-01 00:00:00 +0000 UTC
任何帮助都会有所帮助。在此先感谢。
解决方案
你的代码有问题。
- 你的变量的顺序是错误的。
yy, mm, dd = 11, 27, 2019
应该是yy, mm, dd = 2019, 11, 27
。 - 不要忽略错误。如果遇到问题,只需打印它就会有很多帮助(或者更好的是编写测试)
- 你的格式不对。它的形式应该像
fmt.Sprintf("%d-%02d-%02d", yy, mm, dd)
你可以在这里查看结果
推荐阅读
- django - Django ORM 获取每行的最新版本(内连接)
- c# - 有没有办法通过它的文本来获取标签页
- widget - KDE 小部件 - 图标大小和父项的问题
- spring-boot - Kafka 消费者动态获取主题
- json - “Mycart”类型的对象在 Django 中不是 JSON 可序列化的
- python - 从另一个列表中的数据创建列表
- jmeter - 无法通过运行 Jmeter 脚本来实现预期的吞吐量,因为预期的吞吐量更多但变得非常少
- javafx - 设置“快速”单击 - JavaFx
- php - 使用会话可以直接登录,无需在PHP中匹配电子邮件和密码
- stm32f4 - STM32F4 - 如何检测取出的电池