【问题标题】:Get year,month and day from python variable从python变量中获取年月日
【发布时间】:2019-08-02 10:58:23
【问题描述】:

我想按年、月和日获取变量的中断。这是我得到的:

import datetime
from datetime import date, timedelta
yesterday = date.today() - timedelta(1)
print (yesterday)
year = datetime.date.yesterday.year
month = datetime.date.yesterday.month
day=datetime.date.yesterday.day
print (year)
print (month)
print (day)

我收到 datetime.date 没有属性的错误。我是 python 的菜鸟,我被困住了,感谢任何帮助

【问题讨论】:

  • 只是一个注释,我知道我不需要'打印(昨天)'行,它只是为我测试

标签: python python-3.x date variables


【解决方案1】:

你很亲密

import datetime
from datetime import date, timedelta
yesterday = date.today() - timedelta(1)
print (yesterday)
year = yesterday.year
month = yesterday.month
day=yesterday.day
print (year)
print (month)
print (day)

结果是

2019-03-10

2019

3

10

【讨论】:

    【解决方案2】:

    您还可以像这样简化导入语句:

    from datetime import datetime, timedelta
    
    yesterday = datetime.today() - timedelta(1)
    
    print(yesterday)
    
    year = yesterday.year
    month = yesterday.month
    day = yesterday.day
    
    print(year)
    print(month)
    print(day)
    

    你会得到输出:

    2019-03-10 21:19:36.695577
    2019
    3
    10
    

    【讨论】:

    • 这行得通,Baris 打败了你,感谢您的简化提示
    • 就是这样 ;)... 我会指出,yesterday 也将包含时间,如我添加的输出中所示。从那里,您还可以访问其他属性,例如 yesterday.houryesterday.microsecondyesterday.minuteyesterday.second,甚至可以使用 yesterday.time() 分割各个时间片段,并使用yesterday.weekday().
    • 你也可以使用 --昨天.strftime('%d-%m-%Y') 去除时间信息
    【解决方案3】:

    你可以使用strftime方法

    一个简单的例子:

    >>> from datetime import datetime
    >>> now = datetime.utcnow()
    >>> year_month_day_format = '%Y-%m-%d'
    >>> now.strftime(year_month_day_format)
    '2020-11-06'
    >>> hour_minute_format = '%H:%M'
    >>> now.strftime(hour_minute_format)
    '22:54'
    

    跳跃,它会帮助别人

    【讨论】:

      【解决方案4】:

      当天

      import datetime
      
      current_datetime=datetime.datetime.now()
      print("current_year:{}".format(current_datetime.year))
      print("current_month:{}".format(current_datetime.month))
      print("current_day:{}".format(current_datetime.day))
      

      【讨论】:

        【解决方案5】:

        如果您想要这种格式,例如“2018 年 10 月 10 日”。您可以在当天试用此代码。

        from datetime import datetime, timezone
        
        now_utc = datetime.now(timezone.utc)
        year = now_utc.strftime("%Y")
        month = now_utc.strftime("%b")
        day = now_utc.strftime("%d")
        result = day+"-"+month+"-"+year
        
        print(result)
        
        

        【讨论】:

          猜你喜欢
          • 2017-05-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-11
          • 1970-01-01
          • 1970-01-01
          • 2011-01-02
          相关资源
          最近更新 更多