# -*- 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 # 当前年份
...