Users input date as whatever they like, today they input 2023-4-28, tomorrow they forget what format they use before, they then input 4/29/2023.  Other users may input 30/4/2023,  or  04/30/2023, or 30-4-2023 or 04-30-2023 or just input month only 2023/4,  or just input year only 2023. 
 
https://transparentgov.net:3200/googlemaps141/default?layer_id=0&layer=NYPAD2_Easement¢er_lat=41.18333803421051¢er_long=-73.7791579159306¢er_zoom=13&url=https%3A%2F%2Fservices6.arcgis.com%2FDZHaqZm9cxOD4CWM%2FArcGIS%2Frest%2Fservices%2FNYPAD2_Easement%2FFeatureServer&panto=0&overlayType=overlayType_none&select_field=14&select_fieldvalue=-1&distinctorgroupby=groupby

 
 
https://transparentgov.net:3200/googlemaps141/default?layer_id=0&layer=NYPAD_2_Fee¢er_lat=43.07607440739406¢er_long=-74.21026135147456¢er_zoom=19&url=https%3A%2F%2Fservices6.arcgis.com%2FDZHaqZm9cxOD4CWM%2FArcGIS%2Frest%2Fservices%2FNYPAD_2_Fee%2FFeatureServer&panto=0&overlayType=overlayType_none&select_field=14&select_fieldvalue=-1&distinctorgroupby=groupby

 
This exactly happen in New York State protected land layers. 
Above example, source date column (Src_date) is text field, char(15). Not  esri 'date' type. This is very common in other states and county as well. They collect data from different source, date format is totally different is not unusual. 
 
Use regex to filter out all possible date format
test regex here :   https://www.debuggex.com/   or      https://regex101.com
JavaScript Regex Cheatsheet is here
https://www.debuggex.com/cheatsheet/regex/javascript
 
 
1) find 2023-10-04  
 use regex \d{4}-\d{2}-\d{2}
python function use    date_time_obj = datetime.strptime(raw_date_string, %d/%m/%Y) (1 digital month ok,if with delimit)
https://regex101.com/r/ETRxIg/2

 
https://www.debuggex.com/r/pF2sOvYyZldizz3Z

 
 
 
 
2) find  31/04/2023 or 31/4/2023     
use regex     (0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/\d{4} 
 
python function use   date_time_obj = datetime.strptime(raw_date_string, %d/%m/%Y) (1 digital month ok,if with delimit)
https://regex101.com/r/ETRxIg/1

 
https://www.debuggex.com/r/OGAZSl0I6qsz1992

 
 
3)   find  4/3/2020 or  04/03/2020     
 use regex   ^ (0?[1-9]|1[012])\/(0?[1-9]|[12][0-9]|3[01])\/\d{4}
python function use    date_time_obj = datetime.strptime(raw_date_string, %m/%d/%Y) (1 digital month ok,if with delimit)
https://regex101.com/r/PTGoVi/2

 
 
https://www.debuggex.com/r/enm2dZa4eO5ql4es

 
 
 4)    find  2021/11/08    or   2021/1/8 
use regex    \d{4}\/(0?[1-9]|1[012])\/(0?[1-9]|[12][0-9]|3[01]) 
python function use  date_time_obj = datetime.strptime(raw_date_string, %Y/%m/%d)
 
https://regex101.com/r/IJALbe/1

 
 
 
https://www.debuggex.com/r/28Z918C_CsmfI6KK

 
 
 
5) find 2023     year only 
           use regex   ^\d{4}$ 
python function use    date_time_obj = datetime.strptime(raw_date_string, '%Y')   
 
https://regex101.com/r/PseMzJ/1

 
https://www.debuggex.com/r/t3Zch5QfIDrWnRnf

 
 
 
Final regex table

Final python script 
