为了账号安全,请及时绑定邮箱和手机立即绑定

将工作日名称字符串转换为日期时间

将工作日名称字符串转换为日期时间

MMMHUHU 2021-09-24 15:18:17
我有以下日期(作为对象格式):Tue 31 Jan在熊猫系列中。我尝试将其更改为: 31/01/2019请问,我怎样才能做到这一点?我或多或少地理解,当字符串日期更清晰(如)时,pandas.Datetime可以轻松转换,6/1/1930 22:00但在我的情况下,当它们是工作日名称时则不然。感谢您的帮助。
查看完整描述

3 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

这是实现相同结果的两种替代方法。


方法一:使用 datetime 模块


from datetime import datetime


datetime_object = datetime.strptime('Tue 31 Jan', '%a %d %b')


print(datetime_object) # outputs 1900-01-31 00:00:00

如果您提供了类似的 Year 参数Tue 31 Jan 2018,则此代码将起作用。


from datetime import datetime


datetime_object = datetime.strptime('Tue 31 Jan 2018', '%a %d %b %Y')


print(datetime_object) # outputs 2018-01-31 00:00:00

以这样的格式打印结果日期31/01/2019。您可以使用


print(datetime_object.strftime("%d/%m/%Y")) # outputs 31/01/2018

以下是 datetime 对象可用的所有可能的格式选项。


方法二:使用 dateutil.parser


此方法会自动使用当前年份填充 Year 参数。


from dateutil import parser


string = "Tue 31 Jan"


date = parser.parse(string)


print(date) # outputs 2018-01-31 00:00:00


查看完整回答
反对 回复 2021-09-24
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

转换为datetime对象

如果您想使用该datetime模块,您可以通过执行以下操作来获得年份:


import datetime as dt


d = dt.datetime.strptime('Tue 31 Jan', '%a %d %b').replace(year=dt.datetime.now().year)

这是以您的格式获取日期,但以1900可靠的方式将默认年份替换为当前年份。


这类似于其他答案,但使用内置replace方法而不是连接字符串。


输出

要从新datetime对象获得所需的输出,您可以执行以下操作:


>>> d.strftime('%d/%m/%Y')

'31/01/2018'


查看完整回答
反对 回复 2021-09-24
  • 3 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号