This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2010年01月26日 19:21 by JordanS, last changed 2022年04月11日 14:56 by admin. This issue is now closed.
| Messages (8) | |||
|---|---|---|---|
| msg98358 - (view) | Author: JordanS (JordanS) | Date: 2010年01月26日 19:21 | |
format() cannot handle datetime.DateTime objects, returns the format_spec instead, without applying formatting to it, perhaps default behaviour in case of unknown type. Different modifications, ie: using str.format() syntax produce same behaviour.
Sample code:
import datetime
#data
row = {0: 1, 'BeamId': 218, 2: 0.0, 3: 0.0, 4: datetime.datetime(2006, 7, 18, 0, 12), 5: datetime.datetime(2007, 2, 23, 18, 26, 55, 450000), 6: 32637.774406455803, 1: 218, 'DateAndTime': datetime.datetime(2007, 2, 23, 18, 26, 55, 450000), 'AvgFlexuralStrengthDown': 32637.774406455803, 'WarmUpTime': datetime.datetime(2006, 7, 18, 0, 12), 'AvgFlexuralStrengthUp': 15916.5463146028, 'IceSheetId': 1, 'Y': 0.0, 'X': 0.0, 7: 15916.5463146028}
titles = ['BeamId', 'DateAndTime', 'AvgFlexuralStrengthDown', 'WarmUpTime', 'AvgFlexuralStrengthUp', 'IceSheetId', 'Y', 'X']
#attempt to print datetime: ignores formatting, doesn't print datetime value, prints format_spec instead
for key in titles:
asLine = "{0:*<30}".format(row[key])
print(asLine),
print '\n'
#prints a repr of datetime
for key in titles:
asLine = "{0!r:*<30}".format(row[key])
print(asLine),
print '\n'
#prints datetime as string
for key in titles:
asLine = "{0!s:*<30}".format(row[key])
print(asLine),
print '\n'
|
|||
| msg98362 - (view) | Author: JordanS (JordanS) | Date: 2010年01月26日 19:42 | |
sorry, first time posting anything like this: versions: Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)] on win32 |
|||
| msg98363 - (view) | Author: Eric V. Smith (eric.smith) * (Python committer) | Date: 2010年01月26日 19:44 | |
datetime.datetime passes its format string to strftime:
>>> import datetime
>>> x = datetime.datetime(2001, 1, 2, 3, 4)
>>> x.strftime('%Y-%m-%d')
'2001-01-02'
>>> '{0:%Y-%m-%d}'.format(x)
'2001-01-02'
I'll check to make sure this is documented.
|
|||
| msg98365 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2010年01月26日 19:52 | |
If it is, it isn't any place obvious. I thought I remembered something about using strftime strings in format, but when I looked in the docs for datetime and the section on the format mini language I couldn't find it, so I ended up doing '{} ...'.format(x.strftime("...") in my code...
|
|||
| msg98367 - (view) | Author: Eric V. Smith (eric.smith) * (Python committer) | Date: 2010年01月26日 19:57 | |
I don't think this is documented (that I can find, at least), so I'll assign it to Georg. I think the correct thing to do is something like this, in the datetime, date, and time object descriptions: date.__format__(fmt) For a date d, format(d, fmt) is equivalent to d.strftime(fmt). Ditto for date.__format__. But maybe there's a better, more obvious place to document this. |
|||
| msg98369 - (view) | Author: Eric V. Smith (eric.smith) * (Python committer) | Date: 2010年01月26日 20:05 | |
The documentation for this belongs in the mini-language specification, since that just address built-in types. Each type can define its own format specification language. So I think adding documentation of __format__ to each non-builtin type that implements __format__ is probably the best way to go. |
|||
| msg98370 - (view) | Author: Eric V. Smith (eric.smith) * (Python committer) | Date: 2010年01月26日 20:06 | |
Eric Smith wrote: > The documentation for this belongs in the mini-language specification, ... Oops. "does NOT belong in the mini-language specification". |
|||
| msg117949 - (view) | Author: Alexander Belopolsky (belopolsky) * (Python committer) | Date: 2010年10月04日 14:14 | |
The original bug report is invalid and the documentation issue is a duplicate of #8913. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:56:56 | admin | set | github: 52037 |
| 2010年10月04日 14:15:09 | belopolsky | set | status: open -> closed |
| 2010年10月04日 14:14:57 | belopolsky | set | nosy:
+ belopolsky messages: + msg117949 resolution: duplicate superseder: Document that datetime.__format__ is datetime.strftime |
| 2010年01月27日 01:05:27 | eric.smith | set | assignee: eric.smith -> georg.brandl nosy: + georg.brandl |
| 2010年01月26日 20:06:27 | eric.smith | set | messages: + msg98370 |
| 2010年01月26日 20:05:17 | eric.smith | set | messages: + msg98369 |
| 2010年01月26日 19:57:09 | eric.smith | set | messages: + msg98367 |
| 2010年01月26日 19:52:23 | r.david.murray | set | nosy:
+ r.david.murray messages: + msg98365 versions: + Python 2.7, Python 3.2 |
| 2010年01月26日 19:44:01 | eric.smith | set | nosy:
+ eric.smith messages: + msg98363 assignee: eric.smith components: + Documentation, - Library (Lib) stage: test needed -> |
| 2010年01月26日 19:42:04 | JordanS | set | messages: + msg98362 |
| 2010年01月26日 19:24:04 | brian.curtin | set | priority: normal components: + Library (Lib), - 2to3 (2.x to 3.x conversion tool) stage: test needed |
| 2010年01月26日 19:21:56 | JordanS | create | |