如何将当前日期转为'YYYY-MM-DD'格式的datetime64[ns]类型
问题说明
需要获取YYYY-MM-DD格式的当前日期,要求最终值为datetime64[ns]类型,现有实现仅能得到字符串类型的日期值,原有代码如下:
>>> import datetime >>> from datetime import datetime >>> todays_date = datetime.today().strftime('%Y-%m-%d') >>> todays_date '2022-06-06'
实现方法
datetime64[ns]是pandas/numpy体系下的时间类型,不需要先转成字符串再做二次转换,直接生成对应类型的日期效率最高,有两种常用实现路径:
- 直接生成目标类型日期(推荐)
跳过字符串转换步骤,直接用pandas生成当日日期,默认就是datetime64[ns]类型,调用normalize()可以把时分秒归零,和你要的日期粒度完全匹配:import pandas as pd # 生成datetime64[ns]类型的当日日期,时分秒自动置为00:00:00 todays_date = pd.Timestamp.today().normalize() - 转换现有字符串为目标类型
如果你已经拿到了YYYY-MM-DD格式的日期字符串,直接用pd.to_datetime做类型转换即可,方法会自动识别日期格式,输出符合要求的datetime64[ns]类型值:import pandas as pd from datetime import datetime todays_date_str = datetime.today().strftime('%Y-%m-%d') todays_date = pd.to_datetime(todays_date_str)
注意:两种方式得到的日期值如果需要输出为
YYYY-MM-DD格式的字符串,随时调用.strftime('%Y-%m-%d')即可,不影响本身的时间类型属性。
内容的提问来源于stack exchange,提问作者user17328160
相关产品推荐
相关产品推荐

