[英]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.html和http://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.