簡體   English   中英

讀取Python 2.3中的格式化日期?

[英]Read a formatted date in Python 2.3?

我從未在Python 2.3中使用過datetime模塊,但是我遇到了一個非常愚蠢的問題。 我需要以以下格式閱讀日期

'10-JUL-2010'

然后減去一天(我將使用timedelta ),並返回字符串

'09-JUL-2010 00:00:00 ET'

當然,這是數百個日期。 雖然這很瑣碎,但我找不到如何在Python 2.3中讀取格式化日期的信息! 救命!

編輯

我可以將格式化的日期作為元組檢索,但是它將不接受timedelta對象進行減法! 仍在努力中...

**編輯**

最后...感謝您的幫助,我得以如下解決問題:

print (datetime(*(time.strptime(date_string, format)[0:6])).strftime('%d-%b-%Y')).upper()+'00:00:00 ET'

您正在尋找datetime.datetime.strptime() ,但是文檔對於該功能很糟糕,實際上是對datetime.datetime.strftime()的反向操作。

您要查找的格式字符串是: '%d-%b-%Y'

請參閱: http : //www.python.org/doc/2.3.5/lib/node211.htmlhttp://www.python.org/doc/2.3.5/lib/datetime-datetime.html http: //www.python.org/doc/2.3.5/lib/module-time.html

編輯: 哦,快點! python 2.3中的datetime模塊中沒有strptime。 它在time模塊中,您必須改為使用該模塊。

好吧,2.3中沒有內置功能, 僅從2.5開始 但是對於這種格式,您可以手動解析它...

months = { 'JAN' : 1, 'FEB' : 2, ... } # write that yourself :p
day,mon,year = thedate.split('-')
day = int(day)
mon = months[mon]
year = int(year)
parsed = datetime.datetime(day=day, month=month, year=year)

如果strptime()無法為您解決問題,則還可以使用正則表達式強行強制它:

import re
import date
timestamp_regex = re.compile(r"(\d\d)-(\w\w\w)-(\d\d\d\d)")
# month_mapping: a mapping for 3 letter months to integers
d1 = datetime.date(int(match.group(3)),          #year
                   month_mapping[match.group(2)],#month
                   int(match.group(1)))          #day

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM