Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Is there a Python module to parse a date like the 'date' command in Linux?

45 views
Skip to first unread message

Chris Green

unread,
May 20, 2023, 4:03:23 PM5/20/23
to
I'm converting a bash script to python as it has become rather clumsy
in bash.

However I have hit a problem with converting dates, the bash script
has:-

dat=$(date --date "$1" +"%Y/%m/%d")

and this will accept almost anything reasonably sensible that can be
interpreted as a date, in particular it accepts things like "tomorrow",
"yesterday" and "next thursday".

Is there anything similar in Python or would I be better off simply
using os.system() to run date from the python program?

--
Chris Green
·

Mats Wichmann

unread,
May 22, 2023, 12:42:09 PM5/22/23
to
in the standard library, datetime

as an addon module, dateutil (install as python-dateutil)

Don't know if either are exactly what you want, but do take a look.

Tim Williams

unread,
May 22, 2023, 4:21:57 PM5/22/23
to
On Mon, May 22, 2023 at 12:41 PM Mats Wichmann <ma...@wichmann.us> wrote:

> On 5/20/23 13:53, Chris Green wrote:
> in the standard library, datetime
>
> as an addon module, dateutil (install as python-dateutil)
>
> Don't know if either are exactly what you want, but do take a look.
>
> --
> https://mail.python.org/mailman/listinfo/python-list


In particular,check out dateutil.parser.
parser — dateutil 2.8.2 documentation
<https://dateutil.readthedocs.io/en/stable/parser.html>

parser
<https://dateutil.readthedocs.io/en/stable/parser.html#module-dateutil.parser>

This module offers a generic date/time string parser which is able to parse
most known formats to represent a date and/or time.

This module attempts to be forgiving with regards to unlikely input
formats, returning a datetime object even for dates which are ambiguous. If
an element of a date/time stamp is omitted, the following rules are applied:

Mike Dewhirst

unread,
May 22, 2023, 8:31:26 PM5/22/23
to
On 21/05/2023 5:53 am, Chris Green wrote:
> I'm converting a bash script to python as it has become rather clumsy
> in bash.

What is the use case?

> However I have hit a problem with converting dates, the bash script
> has:-
>
> dat=$(date --date "$1" +"%Y/%m/%d")
>
> and this will accept almost anything reasonably sensible that can be
> interpreted as a date, in particular it accepts things like "tomorrow",
> "yesterday" and "next thursday".
>
> Is there anything similar in Python or would I be better off simply
> using os.system() to run date from the python program?
>


--
Signed email is an absolute defence against phishing. This email has
been signed with my private key. If you import my public key you can
automatically decrypt my signature and be sure it came from me. Your
email software can handle signing.

OpenPGP_signature

Chris Green

unread,
May 23, 2023, 5:18:26 AM5/23/23
to
Mike Dewhirst <mi...@dewhirst.com.au> wrote:
> [-- multipart/mixed, encoding 7bit, 22 lines --]
>
> [-- text/plain, encoding base64, charset: UTF-8, 16 lines --]
>
> On 21/05/2023 5:53 am, Chris Green wrote:
> > I'm converting a bash script to python as it has become rather clumsy
> > in bash.
>
> What is the use case?
>
A script I use to create diary entries, so it's very handy to be able
to give the date as 'yesterday' or 'friday'.

--
Chris Green
·

Alex Pinkney

unread,
May 23, 2023, 1:15:14 PM5/23/23
to

Mike Dewhirst

unread,
May 24, 2023, 4:02:35 AM5/24/23
to
OK - I thought maybe baklabel might suit, but that delivers a day-name
(backup filename prefix) for today or a given date
OpenPGP_signature

Mike Dewhirst

unread,
Jun 1, 2023, 3:00:35 AM6/1/23
to
On 24/05/2023 6:00 pm, Mike Dewhirst wrote:
> On 23/05/2023 7:16 pm, Chris Green wrote:
> OK - I thought maybe baklabel might suit, but that delivers a day-name
> (backup filename prefix) for today or a given date

I have just refreshed baklabel on PyPI and upped it from my local svn
server to github [1]

The changes include resolving ambiguous dates across locales eg USA vs
Australia 5/6/2023 being detected as May in USA and June in Australia on
the assumption that the user knows what is required.

[1] https://github.com/mdewhirst/baklabel
OpenPGP_signature
0 new messages