今天安装了个Plone,并安装了CMFBoard 2.2.1,试用了一下,还不错,只是发现发贴的时间会显示成 ${Y}-${m}-${d} ${H}:${M}
仔细查了一下,是由 utils.py 这个文件中的opt_localized_time()来处理时间的。看了一下这个代码,估计是有人处理错了时间的格式掩码,所以出现了这种情况,针对这个问题,我给出了一个具有一定容错能力的解决办法。很简单。修改后的代码如下:
def opt_localized_time(time, trans):
if type(trans) == StringType:
return time.strftime(trans)
dateParts = time.parts()
day = '%02d' % dateParts[2]
month = '%02d' % dateParts[1]
year = dateParts[0]
hour = '%02d' % dateParts[3]
minute = '%02d' % dateParts[4]
# substitute variables with actual values
localized_time = trans.replace('${DAY}', str(day))
localized_time = trans.replace('${d}', str(day))
localized_time = localized_time.replace('${MONTH}', str(month))
localized_time = localized_time.replace('${m}', str(month))
localized_time = localized_time.replace('${YEAR}', str(year))
localized_time = localized_time.replace('${Y}', str(year))
localized_time = localized_time.replace('${HOUR}', str(hour))
localized_time = localized_time.replace('${H}', str(hour))
localized_time = localized_time.replace('${MINUTE}', str(minute))
localized_time = localized_time.replace('${M}', str(minute))
return localized_time