Cottonwood-Technology / ValidX

Fast, powerful, and flexible validator with sane syntax.
BSD 2-Clause "Simplified" License
20 stars 4 forks source link

multiple formats in date, time and datetime validator for the format argument #10

Closed zN3utr4l closed 1 year ago

zN3utr4l commented 1 year ago
TIME_INPUT_FORMATS = ['%H:%M', '%H:%M:%S', '%H:%M:%S.%f']
TIME_INPUT_FORMATS_TZ = ['%H:%M %z', '%H:%M:%S %z', '%H:%M:%S.%f %z']
DATETIME_INPUT_FORMATS = [
    '%Y-%m-%d %H:%M:%S',
    '%Y-%m-%d %H:%M:%S.%f',
    '%Y-%m-%d %H:%M',
    '%m/%d/%Y %H:%M:%S',
    '%m/%d/%Y %H:%M:%S.%f',
    '%m/%d/%Y %H:%M',
    '%m/%d/%y %H:%M:%S',
    '%m/%d/%y %H:%M:%S.%f',
    '%m/%d/%y %H:%M'
]
DATETIME_INPUT_FORMATS_TZ = [
    '%Y-%m-%d %H:%M:%S %z',
    '%Y-%m-%d %H:%M:%S.%f %z',
    '%Y-%m-%d %H:%M %z',
    '%m/%d/%Y %H:%M:%S %z',
    '%m/%d/%Y %H:%M:%S.%f %z',
    '%m/%d/%Y %H:%M %z',
    '%m/%d/%y %H:%M:%S %z',
    '%m/%d/%y %H:%M:%S.%f %z',
    '%m/%d/%y %H:%M %z'
]
DATE_INPUT_FORMATS = [
    '%Y-%m-%d',
    '%m/%d/%Y',
    '%m/%d/%y',
    '%b %d %Y',
    '%b %d, %Y',
    '%d %b %Y',
    '%d %b, %Y',
    '%B %d %Y',
    '%B %d, %Y',
    '%d %B %Y',
    '%d %B, %Y',
]
DATE_INPUT_FORMATS_TZ = [
    '%Y-%m-%d %z',
    '%m/%d/%Y %z',
    '%m/%d/%y %z',
    '%b %d %Y %z',
    '%b %d, %Y %z',
    '%d %b %Y %z',
    '%d %b, %Y %z',
    '%B %d %Y %z',
    '%B %d, %Y %z',
    '%d %B %Y %z',
    '%d %B, %Y %z'
]
kr41 commented 1 year ago

Complex parsing rules can be implemented using parser argument of the Date, Time, and Datetime validators.