time与datetime模块总结
梳理Python日期时间获取与格式化
time模块
import time
print time.time() # 时间戳
# 转化格式
print time.localtime()
print time.localtime(time.time())
print time.localtime(1544200000.1232) # 传入其他时间戳
# 时间戳(1970纪元后经过的浮点秒数)
print time.mktime(time.localtime()) # 当前时间戳
print time.strftime('%Y-%m-%d', time.localtime()) # 格式化时间
print time.strftime('%Y年%m月%d日 %M时%I分%S秒' , time.localtime())
print time.strptime('2018年12月08日 34时10分04秒' , '%Y年%m月%d日 %M时%I分%S秒') #格式化时间
print time.asctime() # 不传参数 默认是当前时间
print time.asctime(time.localtime(1544278402.1804464))
datetime 模块
datetime模块的功能主要都几种在datetime、date、time、timedelta、tzinfo五个类中,datetime模块是time模块的封装,时间各属性的获取方便一些,在效率上会低一些。
f11 = datetime.date.today() # 2020-05-28
today1 = datetime.datetime.now() # 2020-05-28 10:01:56.608000
today = datetime.datetime.now() # 2020-05-28 10:04:00.137000
dat = datetime.datetime.now().strftime("%Y年-%m月-%d日 %H时:%M分:%S秒") # 2020年-05月-28日 09时:55分:10秒
fstart_remind = f11 - datetime.timedelta(days=30) #
fstart_remind1 = datetime.datetime.strptime("2020-05-24", '%Y-%m-%d')
# print fstart_remind1
from dateutil.relativedelta import relativedelta
# datatiem年加减
fstart_year = (fstart_remind1 + relativedelta(years=1)).strftime('%Y-%m-%d')
# 年/月/天加减
s_time = datetime.datetime.now()
stMonths = (s_time + relativedelta(months=12))
stMonth1 = (s_time - relativedelta(years=1))
stMonth1 = (s_time + relativedelta(days=2))
# 天加减
fstart_remind = "2020-04-14"
fstart_remind = datetime.datetime.strptime(fstart_remind, '%Y-%m-%d') + datetime.timedelta(days=60)
fstart_remind = datetime.datetime.strptime(fstart_remind, '%Y-%m-%d') - datetime.timedelta(days=30)
print fstart_remind,"1212121"
# datetime.time(hour, [minute[, second, [microsecond[, tzinfo]]]])
# hour为必须参数,其他为可选参数
# datetime.date(year, month, day)
# year, month 和 day都是是必须参数
# timedelta可以方便实现日期(date实例、time实例、datetime实例)之间的加减运算。
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, hours=0, weeks=0)
# 所有参数都是默认参数,因此都是可选参数。参数的值可以是整数或浮点数,也可以是正数或负数。内部值存储days、seconds 和 microseconds,其他所有参数都将被转换成这3个单位:
# 1毫秒转换为1000微秒
# 1分钟转换为60秒
# 1小时转换为3600秒
# 1周转换为7天
# datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)
# year, month 和 day是必须要传递的参数, tzinfo可以是None或tzinfo子类的实例。
import calendar
# 获取当前时间月份天数
today = datetime.datetime.strptime('2020-04-14', "%Y-%m-%d")
print calendar.monthrange(today.year,today.month)[1]
# 获取下个月1号
def get_up_month_first_day(d):
return datetime.date(d.year + (d.month == 12), d.month == 12 or d.month + 1, 1)
# 获取上个月一号
def get_last_month_first_day(d):
return datetime.date(d.year - (d.month == 1), d.month - 1 or 12, 1)
# 2.把字符串转成datetime
def str_to_Datetime(st):
return datetime.datetime.strptime(st, "%Y-%m-%d %H:%M:%S")
print str_to_Datetime("2020-02-25 14:25:26")