<p>使用<a href="http://labix.org/python-dateutil" rel="nofollow noreferrer">dateutil</a>:</p>
<pre><code>import datetime as dt
import dateutil.parser as dparser
date_str='on Jun 03, 02010 at 10:22PM'
date=dparser.parse(date_str)
print(date)
# 2010-06-03 22:22:00
print(date.strftime('%a, %d %b %Y %H:%M:%S'))
# Thu, 03 Jun 2010 22:22:00
</code></pre>
<p>如果你能在<code>date_str</code>中去掉讨厌的“on”并将02010更改为2010,那么你可以使用<code>dt.datetime.strptime</code>:</p>
<pre><code>date_str='Jun 03, 2010 at 22:22PM'
date=dt.datetime.strptime(date_str,'%b %d, %Y at %H:%M%p')
print(date)
# 2010-06-03 22:22:00
</code></pre>
<p>或者,作为<a href="https://stackoverflow.com/questions/3453702/convert-12hr-date-time-string-to-24hr-datetime/3453745#3453745">Muhammad Alkarouri points out</a>,如果<code>date_str</code>s总是以<code>on</code>开头,并使用前缀为零的四位数年份,则可以使用</p>
<pre><code>date_str='on Jun 03, 02010 at 22:22PM'
date=dt.datetime.strptime(date_str,'on %b %d, 0%Y at %H:%M%p')
print(date)
# 2010-06-03 22:22:00
</code></pre>
<p>Python的<code>strftime</code>和<code>strptime</code>使用机器的同名C函数。因此,请检查您的本地手册页,了解您的机器可用的格式代码。有关格式代码(可能可用)的一般列表,请参见<a href="http://au2.php.net/strftime" rel="nofollow noreferrer">http://au2.php.net/strftime</a>。</p>