参考网址,写的很棒:

 time和datetime时间戳---python

 time和datetime时间戳---python

 

http://www.open-open.com/lib/view/open1479363382807.html

个人封装好的函数,可以互相转换

 

class my_datetime():
    """
    Basic usage:

        a = datetime.datetime(2016, 9, 21, 13, 42, 8)
        b = "2016-11-15 15:32:12"
        c = u'2016-09-21 13:37:34'
        print type(c)
        d = 1474436826.0
        e = 13710788676.0
        ret = my_datetime()
        res = ret.become_datetime(e)
        print res
        print type(res)
    """

    def __init__(self):
        # 缺少对utc时间的判断
        pass

    def become_timestamp(self, dtdt):
        # 将时间类型转换成时间戳
        if isinstance(dtdt, datetime.datetime):
            timestamp = time.mktime(dtdt.timetuple())
            return timestamp

        elif isinstance(dtdt, str):
            if dtdt.split(" ")[1:]:
                a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d  %H:%M:%S")
                timestamp = time.mktime(a_datetime.timetuple())
            else:
                a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d")
                timestamp = time.mktime(a_datetime.timetuple())
            return timestamp

        elif isinstance(dtdt, float):
            return dtdt

            # elif isinstance(dtdt, unicode):
            #     if dtdt.split(" ")[1:]:
            #         a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S")
            #         timestamp = time.mktime(a_datetime.timetuple())
            #     else:
            #         a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d")
            #         timestamp = time.mktime(a_datetime.timetuple())
            #     return timestamp

    def become_datetime(self, dtdt):
        # 将时间类型转换成datetime类型
        if isinstance(dtdt, datetime.datetime):
            return dtdt

        elif isinstance(dtdt, str):
            if dtdt.split(" ")[1:]:
                a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S")
            else:
                a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d")
            return a_datetime

        elif isinstance(dtdt, float):
            # 把时间戳转换成datetime类型
            a_datetime = datetime.datetime.fromtimestamp(dtdt)
            return a_datetime

            # elif isinstance(dtdt, unicode):
            #     if dtdt.split(" ")[1:]:
            #         a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S")
            #     else:
            #         a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d")
            #     return a_datetime

    def become_str(self, dtdt):
        # 把时间类型转换成字符串
        if isinstance(dtdt, datetime.datetime):
            a_datetime = dtdt.strftime("%Y-%m-%d %H:%M:%S")
            return a_datetime

        elif isinstance(dtdt, str):
            return dtdt

        elif isinstance(dtdt, float):
            a_datetime_local = datetime.datetime.fromtimestamp(dtdt)
            a_datetime = a_datetime_local.strftime("%Y-%m-%d %H:%M:%S")
            return a_datetime

            # elif isinstance(dtdt, unicode):
            #     # 区别:一个是strp, 一个是strf
            #     if dtdt.split(" ")[1:]:
            #         a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d %H:%M:%S")
            #         a_datetime = a_datetime.strftime("%Y-%m-%d %H:%M:%S")
            #     else:
            #         a_datetime = datetime.datetime.strptime(dtdt, "%Y-%m-%d")
            #         a_datetime = a_datetime.strftime("%Y-%m-%d")
            #     return a_datetime

    @staticmethod
    def str_datetime():
        return (datetime.datetime.now()).strftime("%Y-%m-%d %H:%M:%S")
View Code

相关文章: