【问题标题】:Convert date into format %d%m%y Python [duplicate]将日期转换为格式 %d%m%y Python [重复]
【发布时间】:2021-02-26 21:28:12
【问题描述】:

我在 Python 3.9 64x 位中遇到问题。 在我正在编写的程序中,我需要能够将任何输入的日期转换为 %d%m%y 格式。 例如,如果用户输入 2021 年 12 月 12 日,程序会将其转换为 121221,如果用户输入 2021 年 12 月 12 日,程序仍会将其转换为 121221。

【问题讨论】:

  • 如果不希望出现歧义,则拆分字符串并猜测每个子字符串。一天有 len()
  • 将日期转换为完全不明确的格式似乎具有讽刺意味。如果用户输入“121221”,您如何确定预期的年份/世纪?
  • 我正在尝试抓取 Skyscanner,并且我需要使用这种格式的日期才能工作

标签: python python-3.x datetime time python-3.9


【解决方案1】:

您可以使用pandas to_datetime 然后strftime

from pandas import to_datetime
to_datetime('12 December 2021').strftime('%d%m%y') ## returns 121221
to_datetime('2021 12 December').strftime('%d%m%y') ## returns 121221

pandas 在解析字符串时尝试推断格式。

注意,如果不指定用户输入的字符串的日期时间格式,当然会有歧义。例如。字符串'11/12/2021' 是什么意思。可能是'11 December 2021''12 November 2021'。 如果用户输入,这当然容易出错

【讨论】:

    【解决方案2】:
    >>> from_date="12 December 2021"
    >>> import time                
    >>> conv=time.strptime(from_date,"%d %B %Y")
    >>> time.strftime("%d/%m/%y",conv)
    '121221'
    
    >>> from_date="2021 12 December"
    >>> import time                
    >>> conv=time.strptime(from_date,"%Y %d %B")
    >>> time.strftime("%d%m%y",conv)
    '121221'
    

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 2012-07-21
      • 1970-01-01
      • 2018-05-25
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多