我需要解析字符串表示,如'1年','2天'等成ISO8601格式的时期。最终结果必须与PHP中的DateInterval::createFromDateString相同
作为占位符,我已经硬编码了一小组值,我知道这些值在绝大多数情况下都会出现,但很明显,从长远来看,这并不是令人满意的解决方案:
class Interval(object):
_map = {
'1 MONTH': 'P1M',
'6 MONTH': 'P6M',
'1 YEAR': 'P1Y',
'7 DAY': 'P7D',
'5 DAY': 'P5D',
'1 DAY': 'P1D',
'2 WEEK': 'P2W',
'1 WEEK': 'P1W',
'2 DAY': 'P2D',
'2 YEAR': 'P2Y',
'12 MONTH': 'P12M',
}
@staticmethod
def convert(period):
if period not in Interval._map.keys():
# log error
return ''
return Interval._map[period]
有没有一个干净的方法来做这件事,而不是硬代码?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐