dateutil解析器,用于月/年格式:返回月初 [英] dateutil parser for month/year format: return beginning of month

查看:17
本文介绍了dateutil解析器,用于月/年格式:返回月初的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我解析日期时,我使用 parser.parse 方法,该方法会自动识别原始文本中的所有语法.当我有一些字符串,例如"10/2018",而没有日期信息时,就会出现我的问题.默认情况下,解析器在一个月的最后一天(此处为30日)返回datetime对象;我想更改此行为,以使其返回月份的第一天(例如: datetime(2018,10,1,0,0)).我该如何实现?

When I parse dates I use the parser.parse method that automatically recognizes all sorts of syntaxes from raw text. My problem arises when I have some strings like "10/2018", with no day number information. The parser returns by default a datetime object at the last day of the month (here the 30th); i would like to change this behaviour so that it returns the first day of the month instead (ex: datetime(2018, 10, 1, 0, 0)). How can I achieve this?

from dateutil import parser
mystring = ["10/2018", "05/10/2018", "Oct, 2018"]
[parser.parse(i) for i in mystring]
#### Out[5] [datetime.datetime(2018, 10, 30, 0, 0), datetime.datetime(2018, 5, 10, 0, 0), datetime.datetime(2018, 10, 30, 0, 0)]

谢谢

推荐答案

快速查看文档(

Quick look at the docs (https://dateutil.readthedocs.io/en/stable/parser.html) shows that parse() defaults to last of month unless a default datetime object is supplied:

from datetime import datetime
from dateutil import parser

mystring = ["10/2018", "05/10/2018", "Oct, 2018"]
[parser.parse(i, default=datetime(1978, 1, 1, 0, 0)) for i in mystring]

# [datetime.datetime(2018, 10, 1, 0, 0), datetime.datetime(2018, 5, 10, 0, 0), datetime.datetime(2018, 10, 1, 0, 0)]

这篇关于dateutil解析器,用于月/年格式:返回月初的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆