如何去除datetime函数中的时间部分,仅保留yyyy-mm-dd格式日期?
解决Python中datetime打印仅显示日期(yyyy-mm-dd)的问题
嘿,我来帮你搞定这个小问题~
你现在遇到的情况是:用datetime.strptime()把字符串解析成datetime对象后,直接打印会带时分秒(比如2024-05-20 00:00:00),但你只想看到yyyy-mm-dd格式的日期。这是因为strptime()生成的是完整的datetime对象,默认包含时分秒(没指定的话就用00:00:00填充),所以打印时会显示全部信息。
给你两种简单的解决方法:
方法1:用strftime()格式化输出
如果你需要保留datetime对象(后续可能还要做时间计算之类的操作),可以用strftime()方法把它转成你想要的字符串格式:
from datetime import datetime Begindatestring = "2024-05-20" Begindate = datetime.strptime(Begindatestring, "%Y-%m-%d") # 格式化输出为yyyy-mm-dd格式 print(Begindate.strftime("%Y-%m-%d"))
运行后就会直接输出:2024-05-20
方法2:转成date对象
如果你只需要日期信息,不需要时间部分,可以直接把datetime对象转成date对象——date类型本身只存储年月日,打印时自然不会显示时间:
from datetime import datetime Begindatestring = "2024-05-20" # 直接解析后转成date对象 Begindate = datetime.strptime(Begindatestring, "%Y-%m-%d").date() print(Begindate)
运行后同样会输出:2024-05-20
两种方法都能达到你要的效果,选哪种看你后续的需求就好~
内容的提问来源于stack exchange,提问作者Anushka Singh
相关产品推荐
相关产品推荐

