处理Python中的时间间隔?

时间:2017-04-19 08:19:27

标签: python

我需要将字符串表示形式(例如“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]

有没有一种干净的方法可以做到这一点,而不是硬编码?

0 个答案:

没有答案