dateparser icon indicating copy to clipboard operation
dateparser copied to clipboard

Get date format

Open VladShyrokyi opened this issue 4 years ago • 7 comments

Hi, I would like to be able to get the date format from a string. For example, one could add a getFormatPattern method to get a format string that can be used further for business logic. My case: I am doing a csv parser, I need to be able to define the data type in a column, this library could help me if it had this function.

VladShyrokyi avatar Jun 30 '21 10:06 VladShyrokyi

It's possible, dateparser could detect the format of a date string, internally.

But, the format detected is regex, is it what you want?

sisyphsu avatar Jul 01 '21 08:07 sisyphsu

Not really, need a standard according to https://www.w3.org/TR/NOTE-datetime. So that format can be reused with other libraries, possibly in other languages. For example, when the back end processes a csv document, it sends the converted data with format information that the front end processes with their libraries.

VladShyrokyi avatar Jul 04 '21 19:07 VladShyrokyi

Example to use:

var date = "1994-11-05 13:15:30"; var dateFormat = DateParserUtils.parseFormat(date); assert dateFormat = "YYYY-MM-DD hh:mm:ss";

var date = "1994-11-05"; var dateFormat = DateParserUtils.parseFormat(date); assert dateFormat = "YYYY-MM-DD";

var date = "11-05-1994 13:15:30"; var dateFormat = DateParserUtils.parseFormat(date); assert dateFormat = "DD-MM-YYYY hh:mm:ss";

var date = "11-05"; var dateFormat = DateParserUtils.parseFormat(date); assert dateFormat = "DD-MM";

var date = "04 Jul 2021 19:59:09"; var dateFormat = DateParserUtils.parseFormat(date); assert dateFormat = "DD MMM YYYY hh:mm:ss";

VladShyrokyi avatar Jul 04 '21 20:07 VladShyrokyi

There has too many formats supported in dateparser, I don't think it's a good idea to use it like this.

sisyphsu avatar Jul 06 '21 09:07 sisyphsu

Hi @sisyphsu ,

lets say we have csv file .... we want to format a date column .... we can improve performance if we know date format

so can we get date format

thanks

primeap avatar Sep 14 '22 00:09 primeap

I was about to start implementing the code to get the date format given the date string.

Then I stopped because there are some test cases which are making trouble.

  1. 11/11/2022 Is it in DD/MM/YYYY format or MM/DD/YYYY?

Its better to have or follow the date/time format in a project where we are defining these.

akash-yadagouda avatar Sep 15 '22 05:09 akash-yadagouda

You can declare precedence for formats.

When somebody passes one string to the method, you check a list of formats by precedence. If need to find a format for the string list need create another method for this case. Although, format check logic can be reused.

VladShyrokyi avatar Sep 15 '22 07:09 VladShyrokyi