从 Tcl 中的年月格式字符串中提取时钟秒
extracting clock seconds from yearmonth formatted string in Tcl
我正尝试在 Tcl 中为格式为 YearMonth 的字符串提取时钟时间,如下所示。 “202001”表示 2020 年 1 月。
% set value "202001"
% set clocktime [clock scan $value -format "%Y%m"]
1608537600
可以看到Tcl提取出纪元时间为1608537600
如您所见,这是不正确的。如果我将该值转换回字符串值,它返回为 2020 年 12 月
% clock format 1608537600 -format "%Y%m"
202012
我做错了什么?
它在 manual 中指定(基本上是说“日期是根据预处理格式字符串中存在的字段确定的部分。按优先顺序:...”)如果未指定日期,则该日期将被视为当前日期。
由于提供的时钟值缺少日期,时钟扫描将 return 脚本 运行 的日期作为日期。您可以尝试 运行 将其与值 2019
结合起来,如果您在同一天进行,您将获得相同的结果。
要避免这种情况,您可以添加日期。将 01
附加到值并将 %d
附加到格式字符串应该不会太难。
我正尝试在 Tcl 中为格式为 YearMonth 的字符串提取时钟时间,如下所示。 “202001”表示 2020 年 1 月。
% set value "202001"
% set clocktime [clock scan $value -format "%Y%m"]
1608537600
可以看到Tcl提取出纪元时间为1608537600
如您所见,这是不正确的。如果我将该值转换回字符串值,它返回为 2020 年 12 月
% clock format 1608537600 -format "%Y%m"
202012
我做错了什么?
它在 manual 中指定(基本上是说“日期是根据预处理格式字符串中存在的字段确定的部分。按优先顺序:...”)如果未指定日期,则该日期将被视为当前日期。
由于提供的时钟值缺少日期,时钟扫描将 return 脚本 运行 的日期作为日期。您可以尝试 运行 将其与值 2019
结合起来,如果您在同一天进行,您将获得相同的结果。
要避免这种情况,您可以添加日期。将 01
附加到值并将 %d
附加到格式字符串应该不会太难。