Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Python DateTime is broken
#1
Please help me fix this, when I tried this
import datetime
print(datetime.datetime(2019, 10, 10).strftime('%d/%m/%Y'));
It outputs the wrong result.
It should out the the European date format (
Quote:10/10/2019
) but instead it outputs the American date format (
Quote:10/10/2019
).
Plz fix this, this is frustrating me since 10/10/2019.
How do I make it so it outputs the European date? (10/10/2019)
Reply
#2
What? Those outputs are literally the same. In any case, I don't believe you when you say it's broken, not least because if it was someone would have noticed by now. An example where the month and day are different:

$ python3
Python 3.6.2 (default, Oct  5 2017, 12:21:44) 
[GCC 5.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> datetime.datetime(2019, 11, 10).strftime('%d/%m/%Y')
'10/11/2019'
>>>
Reply
#3
In my case it works fine - output is "10/10/2019" in European date format. There is probably a virus in your computer.
Reply
#4
(Dec-31-2019, 06:22 PM)ndc85430 Wrote: What? Those outputs are literally the same. In any case, I don't believe you when you say it's broken, not least because if it was someone would have noticed by now. An example where the month and day are different:

$ python3
Python 3.6.2 (default, Oct  5 2017, 12:21:44) 
[GCC 5.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> datetime.datetime(2019, 11, 10).strftime('%d/%m/%Y')
'10/11/2019'
>>>
Yeah, that's the problem doing
datetime.datetime(2019, 11, 10).strftime('%d/%m/%Y')
returns October 11, 2019 instead of 11 October 2019. But this:
datetime.datetime(2019, 31, 12).strftime('%d/%m/%Y')
should return 31/12/2019 instead of throwing an error.
It's interesting that datetime only isn't broken when the day and the month syntaxes are the same. It's a coincidence that I had this problem on 10/10, thus it shows the same thing and I didn't realise this.
Any solution, it seems that only does what I wanted the datetime module to do on 1/1, 2/2, 3/3, 4/4, 5/5, 6/6, 7/7, 8/8, 9/9, 10/10, 11/11 and 12/12
Reply
#5
I don't think you understand. You can use strftime to make a text representation of the date in whatever format you want. But the datetime object (datetime.datetime(2019, 11, 10)), must be specified in year, month, day order, or you must clarify with keyword arguments what you want (datetime.datetime(year = 2019, day = 11, month = 10)).
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures
Reply
#6
(Jan-02-2020, 03:09 AM)ichabod801 Wrote: I don't think you understand. You can use strftime to make a text representation of the date in whatever format you want. But the datetime object (datetime.datetime(2019, 11, 10)), must be specified in year, month, day order, or you must clarify with keyword arguments what you want (datetime.datetime(year = 2019, day = 11, month = 10)).

Why is it in year month day order? TIL Python dates are in the same order as the date in Japan.

In my country, it's either year day month or day month year.
Reply
#7
I don't know why. You'd have to ask Guido. I expect it's because the tuple of (year, month, day) sorts correctly without having to know it's a date.
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures
Reply
#8
ISO8601 uses year/month/day, as I tend to, because as ichabod mentioned it sorts naturally. So +1 to the guess that that was the designer's thinking.
Reply
#9
(Jan-02-2020, 11:07 PM)10OctNotOct10a1 Wrote: Why is it in year month day order? TIL Python dates are in the same order as the date in Japan.

In my country, it's either year day month or day month year.
Maybe is something that common to use in Japan,but official national standards is JIS X 0301.
ISO 8601
Quote:Extensions according to national standards
There is Japanese Industrial Standard JIS X 0301 (former JIS C 6262), and the translation of ISO 8601 is JIS X 0301
The date is represented in the basic format "YY.MM.DD"
(for example, the year, month, and day are separated by a hyphen , such as 2019-06-23
If want more and better option for standard formats or time-zones use Pendulum
>>> import pendulum
>>> 
>>> now = pendulum.now('Asia/Tokyo')
>>> now
DateTime(2020, 1, 3, 16, 36, 25, 399457, tzinfo=Timezone('Asia/Tokyo'))
>>> print(now)
2020-01-03T16:36:25.399457+09:00

>>> # Example of different formats
>>> print(now.to_rfc2822_string())
Fri, 03 Jan 2020 16:36:25 +0900

>>> print(now.to_rfc850_string())
Friday, 03-Jan-20 16:36:25 JST

>>> print(now.to_rfc3339_string())
2020-01-03T16:36:25.399457+09:00

>>> print(now.to_w3c_string())
2020-01-03T16:36:25+09:00

>>> now.to_iso8601_string()
'2020-01-03T16:36:25.399457+09:00'
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Why is copying and pasting a block now broken? WagmoreBarkless 2 1,332 May-05-2022, 05:01 AM
Last Post: WagmoreBarkless
  Why is copying and pasting a block now broken? WagmoreBarkless 1 1,197 May-04-2022, 11:40 PM
Last Post: Larz60+
  BrokenPipeError: [Errno 32] Broken pipe throwaway34 6 8,940 May-06-2021, 05:39 AM
Last Post: throwaway34
  Python broken if moved to a different folder ecastrotns 3 2,371 Oct-26-2020, 10:53 PM
Last Post: ecastrotns
  STT: recognition connection failed: [Errno 32] Broken pipe GrahamBerends 0 4,972 Jul-18-2020, 11:00 PM
Last Post: GrahamBerends
  Broken interpreter? fcktheworld587 1 2,211 Dec-26-2019, 08:29 PM
Last Post: snippsat
  TypeError: unsupported operand type(s) for -: 'datetime.datetime' and 'str' findbikash 2 9,512 Sep-18-2019, 08:32 AM
Last Post: buran
  Arduino Read Update Datetime from Python jambuna35 0 2,473 Feb-03-2019, 05:13 PM
Last Post: jambuna35
  String being broken up into single characters ammorgan 1 2,309 Dec-31-2018, 07:06 AM
Last Post: Gribouillis
  Speech (audio file, wav) to Text - Broken pipe Shobha 1 3,713 Nov-27-2018, 12:41 PM
Last Post: Larz60+

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020