Python 实现 Datetime 和 timestamp 时间戳互转

本文介绍了一种Python中日期时间与时间戳互相转换的方法,通过一个实用的类实现了从时间戳到datetime以及从datetime到时间戳的转换,适用于各种日期时间操作场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding:utf-8 -*-

import datetime, time

class DateTimestamp(object):
    """
    实现datetime和时间戳互相转换
    """
    
    def __init__(self, date = None):
        if date is None:
            self.timestamp = int(time.time()) 
            self.datetime  = self._toDatetime(self.timestamp)
        else:
            ### 判断是否为时间戳 ###
            if isinstance(date, int) and len(str(date)) == 10:
                self.timestamp  = date
                self.datetime   = self._toDatetime(date)                
            else:
                self.timestamp = self._toTimestamp(date)
                self.datetime  = date

        if self.timestamp == False:
            self.year = self.month = self.day = self.hour = self.minute = self.second = False
        else:
            self._localtime = time.localtime(self.timestamp)                # 返回年月日信息 
            self.year       = self._localtime.tm_year                       # 返回当前年份
            self.month      = self._localtime.tm_mon                        # 返回当前月份
            self.day        = self._localtime.tm_mday                       # 返回当前天数
            self.hour       = self._localtime.tm_hour                       # 返回当前小时
            self.minute     = self._localtime.tm_min                        # 返回当前分钟
            self.second     = self._localtime.tm_sec                        # 返回当前秒数
    
    def _toDatetime(self, timestamp):
        """
        将timestatmp转换成datetime
        """
        try:
            return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))
        except:
            return False
    
    def _toTimestamp(self, datetimeString):
        """
        将datetime转换成timestamp
        """
        try:
            return int(time.mktime(time.strptime(datetimeString, "%Y-%m-%d %H:%M:%S")))
        except:
            return False



#####################

dt = DateTimestamp()                          # 返回当前时间
dt = DateTimestamp("2020-03-20 10:00:00")     # 返回指定datetime的
dt = DateTimestamp(1585570788)                # 返回指定时间戳的

dt.timestamp                                  # 获取时间戳
dt.datetime                                   # 获取datetime
dt.year                                       # 当前年份
...

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘广宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值