可能是为TCL错误的原因是什么:执行时clock scan $Date
无法转换时间串
% echo $tcl_version
8.4
% info patchlevel
8.4.19
看见几个建议升级到TCL 8.5,
Tcl Error: unable to convert date-time string "Wed May 14 05:20:15 RET 2014"
,但想知道8.4本身是否可以解决问题。
可能是为TCL错误的原因是什么:执行时clock scan $Date
无法转换时间串
% echo $tcl_version
8.4
% info patchlevel
8.4.19
看见几个建议升级到TCL 8.5,
Tcl Error: unable to convert date-time string "Wed May 14 05:20:15 RET 2014"
,但想知道8.4本身是否可以解决问题。
你有语法问题。日期应该是“Wed May 14 05:20:15”。 例子:
set Date "Wed May 14 05:20:15"
clock scan $Date
,或者如果你有时间= “周三5月14日五时20分15秒RET 2014”,则:
clock scan "[lindex $Date 0] [lindex $Date 1] [lindex $Date 2] [lindex $Date 3]"
不,问题在于Tcl 8.4的时钟命令无法识别“RET”时区。请参阅https://en.wikipedia.org/wiki/List_of_time_zone_abbreviations –
这是篮下我认为Tcl的8.4让你通过跳: (在Tcl的8.3.3测试)
% set dt "Wed May 14 05:20:15 RET 2014"
Wed May 14 05:20:15 RET 2014
% regsub RET $dt "" dt_alt
1
% set offset +4
+4
% set epoch [clock scan "$offset hours" -base [clock scan $dt_alt -gmt 1]]
1400026815
% clock format $epoch -gmt 1
Wed May 14 00:20:15 GMT 2014
其中
的Tcl 8.5仍然无法解析,准确的字符串:
% set dt "Wed May 14 05:20:15 RET 2014"
Wed May 14 05:20:15 RET 2014
% clock scan $dt
unable to convert date-time string "Wed May 14 05:20:15 RET 2014": syntax error (characters 19-22)
但
% set epoch [clock scan [string map {RET ""} $dt] -format {%a %b %d %T %Y} -timezone :Indian/Reunion]
1400030415
% clock format $epoch
Tue May 13 21:20:15 EDT 2014
% clock format $epoch -timezone :Indian/Reunion
Wed May 14 05:20:15 RET 2014
我注意到时代不同。在那里有一个错误... –
RET是不是Tcl的认可子午线。您可能想要使用时区差异,例如'0400'作为'GMT + 0400'(至少,这似乎对我有用,但我使用了8.6)。你是来自留尼汪岛吗?我认为这是迄今为止我见过的最近的成员= P – Jerry