【问题标题】:syntax to aggrevate year:month:date with strftime command使用 strftime 命令增加年:月:日的语法
【发布时间】:2017-01-15 21:56:16
【问题描述】:

我使用 datetime 从系统获取当前时间并将其存储为字符串(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 行替换为

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 语法有什么可能的解决方案?

【问题讨论】:

    标签: python-3.x strftime


    【解决方案1】:

    替换

    command = 'date -s %s' %timenow
    

    command = 'date --set "%s"' %timenow
    

    会解决的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      • 2022-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多