我从带有日期时间的系统获取当前时间并将其存储为字符串(timenow),但是当我通过 sshclient_exec_command 将它发送到 linux 中设置时存在一些行为差异。
下面是我的代码:
timenow = datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")
command = 'date -s %s' %timenow
stdin, stdout, stderr = self._sshclient.exec_command(command, timeout=10)
try:
command = 'date +"%Y-%m-%d %H:%M:%S"'
stdin, stdout, stderr = self._sshclient.exec_command(command, timeout=10)
ip_time_now = stdout.read().decode(encoding='UTF-8').rstrip('\n')
self.logger.debug(" ip=%s timenow=%s ip_time_now=%s",ip, timenow,ip_time_now)
输出
timenow=2016-09-07 20:15:26 ip_time_now=2016-09-07 21:06:24
timenow 和 ip_time_now 应该从操作中相同
在这里,如果我用
timenow = datetime.datetime.utcnow().strftime("%H:%M:%S") #passes, but without
setting the year and month
输出
timenow=20:25:49 ip_time_now=2016-09-07 20:25:50 #1 sec diff is ok
注意:执行命令时输出没有异常
strftime 语法的可能解决方案是什么?
最佳答案
更换
command = 'date -s %s' %timenow
和
command = 'date --set "%s"' %timenow
会解决。
关于python-3.x - 加重年份的语法 :month:date with strftime command,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39382935/