【问题标题】:Python formatted strings and datetimePython 格式化字符串和日期时间
【发布时间】:2020-09-24 20:06:22
【问题描述】:

这是不允许的还是我输入错误?

import datetime

print(f"Current Time: {datetime.datetime.now().strftime("%I:%M:%S %p")}"
Syntax error at %I:%M...
                  ^

【问题讨论】:

  • 您在引号内使用引号"。尝试转义它们或使用单引号'
  • print( datetime.datetime.now().strftime("Current Time: %I:%M:%S %p") )
  • 放入 f 字符串的内容很多。用老式的方式可能会更好:print("Current Time:", datetime.datetime.now().strftime("%I:%M:%S %p"))

标签: python datetime formatted-text


【解决方案1】:

您将通过在 strftime() 函数中使用双引号来结束 fstring,使用单引号或转义它们。

例如:

print(f"Current Time: {datetime.datetime.now().strftime('%I:%M:%S %p')}"

另外,与您的问题无关,但您并没有真正以正确的方式使用 fstrings。

如果你定义一个“当前时间”变量然后把它放在你的 fstring 中会更好看。

例如:

current_time = datetime.datetime.now().strftime('%I:%M:%S %p')

print(f"Current Time: { current_time }")

【讨论】:

    【解决方案2】:
     print(f'Current Time: {datetime.datetime.now().strftime("%I:%M:%S %p")}')
    

    引用兄弟。

    【讨论】:

      【解决方案3】:

      datetime 类已经有一个预配置的日期转字符串方法:strftime()

      所以你的代码看起来像这样:

      import datetime
      
      date_today = datetime.datetime.now()
      date_today.strftime('%I:%M:%S %p')
      

      【讨论】:

        【解决方案4】:

        因为引号。这是解决方法和您的原始方法。

        import datetime
        print (f'Current Time : {datetime.datetime.now().strftime("%I:%M:%S %p")}')
        
        
        import datetime
        d = datetime.datetime.now().strftime("%I:%M:%S %p")
        print(f"Current Time: {d}")
        

        【讨论】:

          【解决方案5】:

          为什么不这样:

          from datetime import datetime
              
          print(f'Current Time: {datetime.now():%I:%M:%S %p}')
          

          PEP498

          【讨论】:

            猜你喜欢
            • 2017-06-14
            • 1970-01-01
            • 2023-03-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-05-29
            • 1970-01-01
            • 2012-09-07
            相关资源
            最近更新 更多