Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get date format #14

Open
VladShyrokyi opened this issue Jun 30, 2021 · 7 comments
Open

Get date format #14

VladShyrokyi opened this issue Jun 30, 2021 · 7 comments

Comments

@VladShyrokyi
Copy link

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.

@sisyphsu
Copy link
Owner

sisyphsu commented Jul 1, 2021

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

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

@VladShyrokyi
Copy link
Author

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
Copy link
Author

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";

@sisyphsu
Copy link
Owner

sisyphsu commented Jul 6, 2021

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

@primeap
Copy link

primeap commented Sep 14, 2022

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

@akash-yadagouda
Copy link

akash-yadagouda commented Sep 15, 2022

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.

@VladShyrokyi
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants