当前位置: 首页 > 面试题库 >

时间上的行为异常.Go中的解析函数

林俭
2023-03-14
问题内容

执行以下代码片段时,这些代码片段主要来自Go的时间包文档及其Parse函数示例:

package main

import (
   "time"
   "fmt"
)

var shortForm = "2006-Jan-02"
t, _ := time.Parse(shortForm, "2013-Feb-03")
fmt.Println(t)

然后,您可以2013-02-03 00:00:00 +0000 UTC在控制台中获得正确的结果。

但是,当你改变shortForm值略有下降,例如2007-Jan-022006-Feb-02或者2006-Jan-01,它甚至没有定期输出错误的结果,并且输出看起来,如0001-01-01 00:00:00 +0000 UTC2013-03-01 00:00:00 +0000 UTC2013-01-03 00:00:00 +0000 UTC

那么,为什么函数的行为如此奇怪?我该如何处理呢?每次使用该函数时,都应始终将layout变量定义为2006-Jan-02吗?

谢谢。


问题答案:

time.Parsetime.Format功能使用的数字在布局参数来标识哪个日期分量称为:

  • 1:月(或者可以以Jan/的形式出现在字词中January
  • 2: 天
  • 3:小时(或者1524小时制)
  • 4:分钟
  • 5:第二
  • 6:年(或者2006为4位数字的年)
  • 7:时区(或MST时区代码)。

所以,当你改变从布局字符串2006-Jan-022006-Jan-01,你说,一个月的时间,由字符串表示的两倍,从而导致意外结果。



 类似资料:
  • 问题内容: 在Go中,尝试使用时间包的Parse方法将字符串转换为时,不会返回预期结果。似乎时区有问题。我想将UTC中的日期和时间更改为ISO 8601。 提前致谢! 问题答案: 使用特殊值进行时间格式化,并期望格式与这些值一起传递。 如果您传递正确的值,它将以正确的方式解析时间。 因此,过去的年份为2006年,月份为01年,然后继续这样…

  • 问题内容: 这个特殊情况是从一个示例中提炼出来的,在该示例中,程序员假定两次装罐车,首先要装载1号线。我更正了此问题,以允许以任何顺序执行加载- 但是,我发现在Oracle中允许使用a (在SQL Server中不允许这样做),此外,它更改了函数的行为,导致显然是已添加到中。 一个SQL Server示例(注释掉了不适用的代码): 那么问题来了:Oracle在做什么?为什么,对吗? 问题答案: 如

  • 运行lambda函数时,我得到一个Boto3无效参数异常。我正试图找到一种方法来处理这个异常。 我遇到了以下解决方案: 我使用的是python3,我知道boto现在已被弃用,并被boto3取代。但我在boto3中找不到等效的解决方案。 有人能帮我解决这个问题吗?

  • C:\Users\vishal\Desktop {"错误":{"root_cause":[{"type":"parse_exception","原因":"需要请求体"}],"type":"parse_exception","原因":"需要请求体"},"状态": 400}

  • 我想将作为字符串传递给SimpleDateFormat对象的时间戳值转换为时间值,但它引发了一个不可解析的日期异常。 但是我得到了一个如下所述的例外情况: 请找到下面的代码,我已经实现(不工作): 请指导我在我错过的地方实现逻辑。提前道谢。

  • 本文向大家介绍解析Python中的异常处理,包括了解析Python中的异常处理的使用技巧和注意事项,需要的朋友参考一下 在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因。在操作系统提供的调用中,返回错误码非常常见。比如打开文件的函数open(),成功时返回文件描述符(就是一个整数),出错时返回-1。 用错误码来表示是否出错十分不便,因为函数