• Is there a Python module to parse a date like the 'date' command in Lin

    From Chris Green@21:1/5 to All on Sat May 20 20:53:57 2023
    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
    ·

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mats Wichmann@21:1/5 to Chris Green on Mon May 22 10:36:16 2023
    On 5/20/23 13:53, Chris Green wrote:
    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?


    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Tim Williams@21:1/5 to mats@wichmann.us on Mon May 22 16:21:23 2023
    On Mon, May 22, 2023 at 12:41 PM Mats Wichmann <mats@wichmann.us> wrote:

    On 5/20/23 13:53, Chris Green wrote:
    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?


    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:

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Dewhirst@21:1/5 to All on Tue May 23 10:22:49 2023
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------0p4WVg0Ig0nJfslHv6G60DP3
    Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64

    T24gMjEvMDUvMjAyMyA1OjUzIGFtLCBDaHJpcyBHcmVlbiB3cm90ZToNCj4gSSdtIGNvbnZl cnRpbmcgYSBiYXNoIHNjcmlwdCB0byBweXRob24gYXMgaXQgaGFzIGJlY29tZSByYXRoZXIg Y2x1bXN5DQo+IGluIGJhc2guDQoNCldoYXQgaXMgdGhlIHVzZSBjYXNlPw0KDQo+IEhvd2V2 ZXIgSSBoYXZlIGhpdCBhIHByb2JsZW0gd2l0aCBjb252ZXJ0aW5nIGRhdGVzLCB0aGUgYmFz aCBzY3JpcHQNCj4gaGFzOi0NCj4NCj4gICAgICBkYXQ9JChkYXRlIC0tZGF0ZSAiJDEiICsi JVkvJW0vJWQiKQ0KPg0KPiBhbmQgdGhpcyB3aWxsIGFjY2VwdCBhbG1vc3QgYW55dGhpbmcg cmVhc29uYWJseSBzZW5zaWJsZSB0aGF0IGNhbiBiZQ0KPiBpbnRlcnByZXRlZCBhcyBhIGRh dGUsIGluIHBhcnRpY3VsYXIgaXQgYWNjZXB0cyB0aGluZ3MgbGlrZSAidG9tb3Jyb3ciLA0K PiAieWVzdGVyZGF5IiBhbmQgIm5leHQgdGh1cnNkYXkiLg0KPg0KPiBJcyB0aGVyZSBhbnl0 aGluZyBzaW1pbGFyIGluIFB5dGhvbiBvciB3b3VsZCBJIGJlIGJldHRlciBvZmYgc2ltcGx5 DQo+IHVzaW5nIG9zLnN5c3RlbSgpIHRvIHJ1biBkYXRlIGZyb20gdGhlIHB5dGhvbiBwcm9n cmFtPw0KPg0KDQoNCi0tIA0KU2lnbmVkIGVtYWlsIGlzIGFuIGFic29sdXRlIGRlZmVuY2Ug YWdhaW5zdCBwaGlzaGluZy4gVGhpcyBlbWFpbCBoYXMNCmJlZW4gc2lnbmVkIHdpdGggbXkg cHJpdmF0ZSBrZXkuIElmIHlvdSBpbXBvcnQgbXkgcHVibGljIGtleSB5b3UgY2FuDQphdXRv bWF0aWNhbGx5IGRlY3J5cHQgbXkgc2lnbmF0dXJlIGFuZCBiZSBzdXJlIGl0IGNhbWUgZnJv bSBtZS4gWW91cg0KZW1haWwgc29mdHdhcmUgY2FuIGhhbmRsZSBzaWduaW5nLg0KDQo= --------------0p4WVg0Ig0nJfslHv6G60DP3--

    -----BEGIN PGP SIGNATURE-----

    wsB5BAABCAAjFiEE/NCg7Xf1UydoVFgpGvW31BqCOLMFAmRsB1kFAwAAAAAACgkQGvW31BqCOLNb 9wf+P3v//mTFjyzPQ3i518pD++A8+bh6Oyf2QCuN9F75vFAsMzZDRkm5o4QtlfhSAGD7uRZj4tn3 5JY946Iz0NcfAAfWSqnJdAE73NgKiQ/FPRUOn7W9NQKU+xuHQC9xsSKzHKutVEJhELhUBpx51RhQ /k60Z4Y6EKeEcEBjFjFg5Jm93Ran5JONfgQmkGszXCemvkV+qi++paR8AuDk9B4bBfenSeRHtjfw SsS6Sw5+yF17hVY00ZrOvQ9pX9OZIR5FK31ks5wjLSDvHpiyb0ko32LSuSfZW+BYNQ1xdw/7yO+u zGo/OpCteZFqbDj/g+cPUrdb65t8bqPUHfwA6O5nRg==
    =tZUr
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Chris Green@21:1/5 to Mike Dewhirst on Tue May 23 10:16:47 2023
    Mike Dewhirst <miked@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
    ·

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Alex Pinkney@21:1/5 to cl@isbd.net on Tue May 23 17:53:24 2023
    On Tue, 23 May 2023, 17:25 Chris Green, <cl@isbd.net> wrote:

    Mike Dewhirst <miked@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
    ·
    --
    https://mail.python.org/mailman/listinfo/python-list



    Hi, you may find dateparser useful: https://dateparser.readthedocs.io/en/latest/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Dewhirst@21:1/5 to Chris Green on Wed May 24 18:00:28 2023
    To: python-list@python.org

    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------0CMvmdoxRq2Povnp4Kja88hA
    Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64

    T24gMjMvMDUvMjAyMyA3OjE2IHBtLCBDaHJpcyBHcmVlbiB3cm90ZToNCj4gTWlrZSBEZXdo aXJzdDxtaWtlZEBkZXdoaXJzdC5jb20uYXU+ICB3cm90ZToNCj4+IFstLSBtdWx0aXBhcnQv bWl4ZWQsIGVuY29kaW5nIDdiaXQsIDIyIGxpbmVzIC0tXQ0KPj4NCj4+ICAgICAgWy0tIHRl eHQvcGxhaW4sIGVuY29kaW5nIGJhc2U2NCwgY2hhcnNldDogVVRGLTgsIDE2IGxpbmVzIC0t XQ0KPj4NCj4+IE9uIDIxLzA1LzIwMjMgNTo1MyBhbSwgQ2hyaXMgR3JlZW4gd3JvdGU6DQo+ Pj4gSSdtIGNvbnZlcnRpbmcgYSBiYXNoIHNjcmlwdCB0byBweXRob24gYXMgaXQgaGFzIGJl Y29tZSByYXRoZXIgY2x1bXN5DQo+Pj4gaW4gYmFzaC4NCj4+IFdoYXQgaXMgdGhlIHVzZSBj YXNlPw0KPj4NCj4gQSBzY3JpcHQgSSB1c2UgdG8gY3JlYXRlIGRpYXJ5IGVudHJpZXMsIHNv IGl0J3MgdmVyeSBoYW5keSB0byBiZSBhYmxlDQo+IHRvIGdpdmUgdGhlIGRhdGUgYXMgJ3ll c3RlcmRheScgb3IgJ2ZyaWRheScuDQoNCk9LIC0gSSB0aG91Z2h0IG1heWJlIGJha2xhYmVs IG1pZ2h0IHN1aXQsIGJ1dCB0aGF0IGRlbGl2ZXJzIGEgZGF5LW5hbWUgDQooYmFja3VwIGZp bGVuYW1lIHByZWZpeCkgZm9yIHRvZGF5IG9yIGEgZ2l2ZW4gZGF0ZQ0KDQo+DQoNCg0KLS0g DQpTaWduZWQgZW1haWwgaXMgYW4gYWJzb2x1dGUgZGVmZW5jZSBhZ2FpbnN0IHBoaXNoaW5n LiBUaGlzIGVtYWlsIGhhcw0KYmVlbiBzaWduZWQgd2l0aCBteSBwcml2YXRlIGtleS4gSWYg eW91IGltcG9ydCBteSBwdWJsaWMga2V5IHlvdSBjYW4NCmF1dG9tYXRpY2FsbHkgZGVjcnlw dCBteSBzaWduYXR1cmUgYW5kIGJlIHN1cmUgaXQgY2FtZSBmcm9tIG1lLiBZb3VyDQplbWFp bCBzb2Z0d2FyZSBjYW4gaGFuZGxlIHNpZ25pbmcuDQoNCg== --------------0CMvmdoxRq2Povnp4Kja88hA--

    -----BEGIN PGP SIGNATURE-----

    wsB5BAABCAAjFiEE/NCg7Xf1UydoVFgpGvW31BqCOLMFAmRtxBwFAwAAAAAACgkQGvW31BqCOLNt BAf+KYG9d0G1iklUhmZgqfwX327UP/h10BHpPmeWL7ZYQ2hT9mun0xA2pS9EwnJvnYradyhiFUUP Bli4wLDuaivOkrLZxAL/vcsRwzno0zo7/9k/DCoBkfJexyizzMroKboyQElINr/gOQFELIhaoUIs E+StsGgiaBJ+IDJ6OHD6cv/WEnUsOm8qmxo3GePu2S5hNO0VrmlUCF+jTdBdHOy4/slWjXAPS1yc jeN3i1Ny+TD9S68j+nsIStw3u3JgigixfVsZod6RAdyQ9jZJUDyE1O/RqGTcLaZzWQTYWD3/hooP xtSWUyzVkKgY3OleavOJdLFpaLW9Oq/WLSQhf9bYtw==
    =TI+K
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Dewhirst@21:1/5 to Chris Green on Thu Jun 1 16:53:01 2023
    To: python-list@python.org

    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------702gbH71wqA5JvxDP0KPCxQm
    Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64

    T24gMjQvMDUvMjAyMyA2OjAwIHBtLCBNaWtlIERld2hpcnN0IHdyb3RlOg0KPiBPbiAyMy8w NS8yMDIzIDc6MTYgcG0sIENocmlzIEdyZWVuIHdyb3RlOg0KPj4gTWlrZSBEZXdoaXJzdDxt aWtlZEBkZXdoaXJzdC5jb20uYXU+ICB3cm90ZToNCj4+PiBbLS0gbXVsdGlwYXJ0L21peGVk LCBlbmNvZGluZyA3Yml0LCAyMiBsaW5lcyAtLV0NCj4+Pg0KPj4+ICAgICAgWy0tIHRleHQv cGxhaW4sIGVuY29kaW5nIGJhc2U2NCwgY2hhcnNldDogVVRGLTgsIDE2IGxpbmVzIC0tXQ0K Pj4+DQo+Pj4gT24gMjEvMDUvMjAyMyA1OjUzIGFtLCBDaHJpcyBHcmVlbiB3cm90ZToNCj4+ Pj4gSSdtIGNvbnZlcnRpbmcgYSBiYXNoIHNjcmlwdCB0byBweXRob24gYXMgaXQgaGFzIGJl Y29tZSByYXRoZXIgY2x1bXN5DQo+Pj4+IGluIGJhc2guDQo+Pj4gV2hhdCBpcyB0aGUgdXNl IGNhc2U/DQo+Pj4NCj4+IEEgc2NyaXB0IEkgdXNlIHRvIGNyZWF0ZSBkaWFyeSBlbnRyaWVz LCBzbyBpdCdzIHZlcnkgaGFuZHkgdG8gYmUgYWJsZQ0KPj4gdG8gZ2l2ZSB0aGUgZGF0ZSBh cyAneWVzdGVyZGF5JyBvciAnZnJpZGF5Jy4NCj4NCj4gT0sgLSBJIHRob3VnaHQgbWF5YmUg YmFrbGFiZWwgbWlnaHQgc3VpdCwgYnV0IHRoYXQgZGVsaXZlcnMgYSBkYXktbmFtZSANCj4g KGJhY2t1cCBmaWxlbmFtZSBwcmVmaXgpIGZvciB0b2RheSBvciBhIGdpdmVuIGRhdGUNCg0K SSBoYXZlIGp1c3QgcmVmcmVzaGVkIGJha2xhYmVsIG9uIFB5UEkgYW5kIHVwcGVkIGl0IGZy b20gbXkgbG9jYWwgc3ZuIA0Kc2VydmVyIHRvIGdpdGh1YiBbMV0NCg0KVGhlIGNoYW5nZXMg aW5jbHVkZSByZXNvbHZpbmcgYW1iaWd1b3VzIGRhdGVzIGFjcm9zcyBsb2NhbGVzIGVnIFVT QSB2cyANCkF1c3RyYWxpYSA1LzYvMjAyMyBiZWluZyBkZXRlY3RlZCBhcyBNYXkgaW4gVVNB IGFuZCBKdW5lIGluIEF1c3RyYWxpYSBvbiANCnRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIHVz ZXIga25vd3Mgd2hhdCBpcyByZXF1aXJlZC4NCg0KWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9t ZGV3aGlyc3QvYmFrbGFiZWwNCg0KPg0KPg0KPg0KPiAtLSANCj4gU2lnbmVkIGVtYWlsIGlz IGFuIGFic29sdXRlIGRlZmVuY2UgYWdhaW5zdCBwaGlzaGluZy4gVGhpcyBlbWFpbCBoYXMN Cj4gYmVlbiBzaWduZWQgd2l0aCBteSBwcml2YXRlIGtleS4gSWYgeW91IGltcG9ydCBteSBw dWJsaWMga2V5IHlvdSBjYW4NCj4gYXV0b21hdGljYWxseSBkZWNyeXB0IG15IHNpZ25hdHVy ZSBhbmQgYmUgc3VyZSBpdCBjYW1lIGZyb20gbWUuIFlvdXINCj4gZW1haWwgc29mdHdhcmUg Y2FuIGhhbmRsZSBzaWduaW5nLg0KDQotLSANClNpZ25lZCBlbWFpbCBpcyBhbiBhYnNvbHV0 ZSBkZWZlbmNlIGFnYWluc3QgcGhpc2hpbmcuIFRoaXMgZW1haWwgaGFzDQpiZWVuIHNpZ25l ZCB3aXRoIG15IHByaXZhdGUga2V5LiBJZiB5b3UgaW1wb3J0IG15IHB1YmxpYyBrZXkgeW91 IGNhbg0KYXV0b21hdGljYWxseSBkZWNyeXB0IG15IHNpZ25hdHVyZSBhbmQgYmUgc3VyZSBp dCBjYW1lIGZyb20gbWUuIFlvdXINCmVtYWlsIHNvZnR3YXJlIGNhbiBoYW5kbGUgc2lnbmlu Zy4NCg0K
    --------------702gbH71wqA5JvxDP0KPCxQm--

    -----BEGIN PGP SIGNATURE-----

    wsB5BAABCAAjFiEE/NCg7Xf1UydoVFgpGvW31BqCOLMFAmR4QE0FAwAAAAAACgkQGvW31BqCOLPn 2gf+KuX7aeyyE78goufU9TqNwWQLw9RCE8KLlK4fPhpuwJ7sy5eC9SjLfCKjVjIw3EcRPRqPLWDp uqsUHJQuVgdjGUmZvvzKhI3hrCCFBlIqY1W4RAdnRmPX6CKuy0RrFjRnDRxCi9rJXlwkd4rvZSq/ e3uawCYdemHH+q8cBxTlXmVG/cuwTXHuMyAwcCAxwuVbWGE4ybCiB054Ur4Iyg34T2evzCljxeXF IPRhnheGz5zPViaGNIP/B4vvjw6cDIkkVI2O71wWPvCaxfDE1FKBw/n/+/vy7YcjKPuso7mcmhEi jO5utlOV7+nI7JY89mv7GrUlFQjBsnP2IfXRgpCJcQ==
    =RsfT
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)