diff --git a/beets/dbcore/query.py b/beets/dbcore/query.py index aa8aa4af8..8ce4dac41 100644 --- a/beets/dbcore/query.py +++ b/beets/dbcore/query.py @@ -553,16 +553,15 @@ class Period(object): """ if not string: return None - ordinal = string.count('-') - if ordinal >= len(cls.date_formats): - # Too many components. - raise InvalidQueryArgumentTypeError(string, - 'a valid datetime string') - date_format = cls.date_formats[ordinal] - try: - date = datetime.strptime(string, date_format) - except ValueError: - # Parsing failed. + date = None + for ordinal, date_format in enumerate(cls.date_formats): + try: + date = datetime.strptime(string, date_format) + break + except ValueError: + # Parsing failed. + pass + if date is None: raise InvalidQueryArgumentTypeError(string, 'a valid datetime string') precision = cls.precisions[ordinal]