标准库之时间和日期库time和datetime

1.time库

格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

示例1:

import time
# 获取当前时间戳(单位:毫秒)
print(int(time.time() * 1000))
# 获取当前时间的时间元组
print(time.localtime())
# 获取指定时间戳(单位:秒)的时间元组
print(time.localtime(1575767305))
# 将指定格式的日期转换成时间元组
print(time.strptime("2019-12-08 09:11:00", "%Y-%m-%d %H:%M:%S"))
# 将时间元组转换成时间戳(单位:秒)
print(time.mktime(time.localtime()))
# 将时间元组格式化为日期格式
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

结果输出:

1575767781677
time.struct_time(tm_year=2019, tm_mon=12, tm_mday=8, tm_hour=9, tm_min=16, tm_sec=21, tm_wday=6, tm_yday=342, tm_isdst=0)
time.struct_time(tm_year=2019, tm_mon=12, tm_mday=8, tm_hour=9, tm_min=8, tm_sec=25, tm_wday=6, tm_yday=342, tm_isdst=0)
time.struct_time(tm_year=2019, tm_mon=12, tm_mday=8, tm_hour=9, tm_min=11, tm_sec=0, tm_wday=6, tm_yday=342, tm_isdst=-1)
1575767781.0
2019-12-08 09:16:21

2.datetime库

示例2:

import datetime
from dateutil.relativedelta import relativedelta
# 获取当前日期时间
print("当前日期时间:{}.".format(datetime.datetime.now()))
# 获取当前时间戳(单位:秒)
print("当前时间戳(单位:秒):{}".format(datetime.datetime.timestamp(datetime.datetime.now())))

# 获取今天日期
today = datetime.date.today()
print("今天日期:{}.".format(today))

# timedelta函数天、小时、分钟、秒增量:days、hours、minutes、seconds
# 获取昨天日期
print("昨天日期:{}.".format(today - datetime.timedelta(days=1)))

# 获取明天日期
print("明天日期:{}".format(today + datetime.timedelta(days=1)))

# 获取本周第一天和最后一天日期
print("本周第一天日期:{}.".format(today - datetime.timedelta(days=today.weekday())))
print("本周最后一天日期:{}.".format(today + datetime.timedelta(days=6 - today.weekday())))

# 获取上周第一天和最后一天日期
print("上周第一天日期:{}.".format(today - datetime.timedelta(days=today.weekday() + 7)))
print("上周最后一天日期:{}.".format(today - datetime.timedelta(days=today.weekday() + 1)))

# 获取本月第一天和最后一天日期
print("本月第一天日期:{}.".format(datetime.datetime(today.year, today.month, 1).strftime("%Y-%m-%d")))
print("本月最后一天日期:{}.".format(today + datetime.timedelta(days=-today.day + 1) + relativedelta(months=1, days=-1)))

# 获取上月第一天和最后一天日期
print("上月第一天日期:{}.".format(today + datetime.timedelta(days=-today.day + 1) + relativedelta(months=-1)))
print("上月最后一天日期:{}.".format(today + datetime.timedelta(days=-today.day + 1) + relativedelta(days=-1)))

# 获取本季度第一天和最后一天日期
del_month = today.month % 3 if today.month % 3 != 0 else 3
add_month = 3 - today.month % 3 if today.month % 3 !=0 else 0
print("本季度第一天日期:{}.".format(today + datetime.timedelta(days=-today.day + 1) - relativedelta(months=del_month)))
print("本季度最后一天日期:{}.".format(today + datetime.timedelta(days=-today.day + 1) + relativedelta(months=add_month + 1, days=-1)))

# 获取上季度第一天和最后一天日期
del_month = today.month % 3 if today.month % 3 != 0 else 3
add_month = 3 - today.month % 3 if today.month % 3 !=0 else 0
print("上季度第一天日期:{}.".format(today + datetime.timedelta(days=-today.day + 1) - relativedelta(months=del_month + 3)))
print("上季度最后一天日期:{}.".format(today + datetime.timedelta(days=-today.day + 1) + relativedelta(months=add_month + 1 - 3 , days=-1)))

# 获取本年第一天和最后一天
print("本年第一天日期:{}.".format(datetime.datetime(today.year, 1, 1).strftime("%Y-%m-%d")))
print("本年最后一天日期:{}.".format((datetime.datetime(today.year + 1, 1, 1) - datetime.timedelta(days=1)).strftime("%Y-%m-%d")))

# 获取去年第一天和最后一天日期
print("去年第一天日期:{}.".format(datetime.datetime(today.year - 1, 1, 1).strftime("%Y-%m-%d")))
print("去年最后一天日期:{}.".format((datetime.datetime(today.year, 1, 1) - datetime.timedelta(days=1)).strftime("%Y-%m-%d")))

结果输出:

当前日期时间:2019-12-08 10:35:34.048708.
当前时间戳(单位:秒):1575772534.048708
今天日期:2019-12-08.
昨天日期:2019-12-07.
明天日期:2019-12-09
本周第一天日期:2019-12-02.
本周最后一天日期:2019-12-08.
上周第一天日期:2019-11-25.
上周最后一天日期:2019-12-01.
本月第一天日期:2019-12-01.
本月最后一天日期:2019-12-31.
上月第一天日期:2019-11-01.
上月最后一天日期:2019-11-30.
本季度第一天日期:2019-09-01.
本季度最后一天日期:2019-12-31.
上季度第一天日期:2019-06-01.
上季度最后一天日期:2019-09-30.
本年第一天日期:2019-01-01.
本年最后一天日期:2019-12-31.
去年第一天日期:2018-01-01.
去年最后一天日期:2018-12-31.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值